文档详情

Linux下定时执行脚本答题.doc

发布:2017-04-19约6.01千字共8页下载文档
文本预览下载声明
Linux下定时执行脚本 ? ? ??? 今天做了个数据库的备份脚本,顺便系统得学习一下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 01 * * * * root run-parts /etc/cron.hourly 02 4 * * * root run-parts /etc/cron.daily 22 4 * * 0 root run-parts /etc/cron.weekly 42 4 1 * * root run-parts /etc/cron.monthly ??? 前四行是有关设置cron任务运行的环境变量。SHELL变量的值指定系统使用的SHELL环境(该样例为bash shell),PATH变量定义了执行命令的路径。Cron的输出以电子邮件的形式发给MAILTO变量定义的用户名。如果MAILTO变量定义为空字符串(MAILTO=),电子邮件不会被发送。执行命令或脚本时HOME变量可用来设置基目录。 ??? 文件/etc/crontab中每行任务的描述格式如下: ? ??? minute hour day month dayofweek command ? ??? minute - 从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表示这四个指定整数。 ??? 符号“/”指定步进设置。“/interger”表示步进值。如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 3 * * mon cat /proc/meminfo /tmp/meminfo # run custom scrīpt the first day of every month at 4:10AM 10 4 1 * * /root/scrīpts/backup.sh ??? 除了root用户之外的用户可以执行crontab配置计划任务。所有用户定义的crontab存储在目录/var/spool/cron下,任务会以创建者的身份被执行。要以特定用户创建一个crontab,先以该用户登录,执行命令crontab -e,系统会启动在VISUAL或者EDITOR中指定的的编辑软件编辑crontab。文件内容与/etc/crontab格式相同。示例如下: 0 3 * * * /home/dbbackup/db1backup.sh backup 0 4 * * * /home/dbbackup/db2backup.sh backup ??? 表示每天3点执行/home/dbbackup/db1backup.sh backup,4点执行/home/dbbackup/db2backup.sh backup,如果是每五分钟执行一
显示全部
相似文档