摘要:今天做了个数据库的备份脚本,顺便系统得学习一下Linux下定时执行脚本的设置。Linux下的定时执行主要是使用crontab文件中加入订制计划来执行,设置比Windows略微复杂一些(因为没有图形界面嘛),但是也不是很复杂,基本上用过一遍能够记住了,关键是要记住/var/spool/cron这个目录。
今天做了个数据库的备份脚本,顺便系统得学习一下Linux下定时执行脚本的设置。Linux下的定时执行主要是使用crontab文件中加入订制计划来执行,设置比Windows略微复杂一些(因为没有图形界面嘛),但是也不是很复杂,基本上用过一遍能够记住了,关键是要记住/var/spool/cron这个目录。下面看一下具体的使用方式:
首先查看一下/etc/crontab文件:
$ cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
run-parts
01root run-parts /etc/cron.hourly
02 4* root run-parts /etc/cron.daily
22 40 root run-parts /etc/cron.weekly
42 4 1root run-parts /etc/cron.monthly
前四行是有关设置cron任务运行的环境变量。SHELL变量的值指定系统使用的SHELL环境(该样例为bash shell),PATH变量定义了执行命令的路径。Cron的输出以电子邮件的方式发给MAILTO变量定义的用户名。如果MAILTO变量定义为空字符串(MAILTO=""),电子邮件不会被发送。执行命令或脚本时HOME变量可拿来设置基目录。文件/etc/crontab中每行任务的描述格式如下:minutehourdaymonthdayofweek commandminute- 从0到59的整数hour- 从0到23的整数day- 从1到31的整数 (必须是指定月份的有效日期)month- 从1到12的整数 (或如Jan或Feb缩写的月份)dayofweek - 从0到7的整数,0或7拿来描述周一 (或用Sun或Mon简写来表示)command - 需要执行的命令(可用as ls /proc >> /tmp/proc或 执行自定义脚本的命令) root表示以root用户身分来运行run-parts表示前面跟随的是一个目录传奇私服延时执行脚本命令,要执行的是该目录下的所有脚本对于以上各句子,星号(*)表示所有可用的值。例如*在指代month时表示每月执行(需要符合其他限制条件)该命令。 整数间的连字号(-)表示整数列,例如1-4意思是整数1,2,3,4指定数值由冒号分开。如:3,4,6,8表示这四个指定整数。符号“/”指定步进设置。“/”表示步进值。如0-59/2定义每两分钟执行一次。步进值也可用星号表示。如*/3拿来运行每三个月份运行指定任务。以“#”开头的为注视行,不会被执行。如果一个cron任务须要定期而不是按小时,天,周,月来执行,则须要降低/etc/cron.d目录。这个目录下的所有文件和文件/etc/crontab句型相同,查看样例:
record the memory usage of the system every monday
at 3:30AM in the file /tmp/meminfo
30 3mon cat /proc/meminfo >> /tmp/meminfo
run custom scrīpt the first day of every month at 4:10AM
(责任编辑:admin)