วันจันทร์ที่ 31 สิงหาคม พ.ศ. 2552

ตั้งค่า restart server อัตโนมัติ โดยใช้ crontab

crontab -e
แล้วเพิ่มข้อความ

00 00 * * * /sbin/reboot
หรือ
00 00 * * * /sbin/shutdown -r now

อันนี้ reboot ทุกเที่ยงคืน เปลี่ยนเวลาเอาเองนะครับ
-------------------------------------------
นาที ชั่วโมง วันที่ เดือน วันในสัปดาห์ คำสั่ง
* * * * * คำสั่ง

นาที 0-59
ชั่วโมง 0-23 0=เที่ยงคืน
วันที่ 1-31
เดือน 1-12
วันในสัปดาห์ 0-6 0=วันอาทิตย์

ดูรายละเอียด crontab

crontab -l

เพิ่มเติม

Howto Set-up a Crontab File

Yesterday I mainly worked on some PHP backup scripts [not very exciting, but necessary.] The scripts are run at regular intervals and perform various data backups across numerous domains. To accomplish this I set-up some cron jobs that will automatically execute the scripts at set intervals.

This is not the first time that I've had to set-up cron jobs [I've got several that date back a few years.] I think that having the ability to set-up scheduled tasks is really quite important. Therefore I thought I'd blog about it for future reference.

What is cron?

Cron is a daemon/service that executes shell commands periodically on a given schedule. Cron is driven by a crontab, a configuration file that holds details of what commands are to be run along with a timetable of when to run them.

Creating a crontab file

You can create a crontab file by entering the following terminal command:

crontab -e
Entering the above command will open a terminal editor [Ubuntu uses Nano by default] with a new blank crontab file [or it will open an existing crontab if you already have one.] You can now enter the commands to be executed [see syntax below] before saving the file and exiting the editor. As long as your entries were entered correctly your commands should now be executed at the times/dates you specified. You can see a list of active crontab entries by entering the following terminal command:

crontab -l
Crontab syntax

A crontab file has six fields for specifying minute, hour, day of month, month, day of week and the command to be run at that interval. See below:

* * * * * command to be executed
- - - - -
| | | | |
| | | | +----- day of week (0 - 6) (Sunday=0)
| | | +------- month (1 - 12)
| | +--------- day of month (1 - 31)
| +----------- hour (0 - 23)
+------------- min (0 - 59)
Crontab examples

Writing a crontab file can be a somewhat confusing for first time users [and the above table probably doesn't help much!] Therefore I've listed below some crontab examples:

* * * * * #Runs every minute
30 * * * * #Runs at 30 minutes past the hour
45 6 * * * #Runs at 6:45 am every day
45 18 * * * #Runs at 6:45 pm every day
00 1 * * 0 #Runs at 1:00 am every Sunday
00 1 * * 7 #Runs at 1:00 am every Sunday
00 1 * * Sun #Runs at 1:00 am every Sunday
30 8 1 * * #Runs at 8:30 am on the first day of every month
00 0-23/2 02 07 * #Runs every other hour on the 2nd of July
As well as the above there are also special strings that can be used:

@reboot #Runs at boot
@yearly #Runs once a year [0 0 1 1 *]
@annually #Runs once a year [0 0 1 1 *]
@monthly #Runs once a month [0 0 1 * *]
@weekly #Runs once a week [0 0 * * 0]
@daily #Runs once a day [0 0 * * *]
@midnight #Runs once a day [0 0 * * *]
@hourly #Runs once an hour [0 * * * *]
Multiple commands

A double-ampersand "&&" can be used to run multiple commands consecutively. The following example would run command_01 and then command_02 once a day:

@daily &&
Disabling email notifications

By default a cron job will send an email to the user account executing the cronjob. If this is not needed put the following command at the end of the cron job line:

>/dev/null 2>&1
Specifying a crontab file to use

As mentioned at the top of this post, you can create a new crontab file with the "crontab -e" command. However, you may already have a crontab file, if you do you can set it to be used with the following command:

crontab -u
Therefore the following command…

crontab -u tux ~/crontab
…would set Tux's crontab file to that of the file named "crontab" residing in Tux's home directory.

Removing a crontab file

To remove your crontab file simply enter the following terminal command:

crontab -r
Further information

Refer to the man page for further information about crontab. Enter the terminal command:

man crontab

ไม่มีความคิดเห็น:

แสดงความคิดเห็น

ปัญหา wordpad ใน windows 11 หาย แก้ไขแบบนี้

 https://win7games.com/#wordpad download มาติดตั้งซะ