linux中设置定时任务是后端和运维必须会的技能。那么怎样在你的服务器系统中设置定时任务呢?
首先你将你需要干的事写入一个shell脚本(如果任务只需要简单的命令即可完成可直接编辑在定时脚本文件中,不用编写额外的shell脚本),然后再编辑系统的定时脚本定时执行shell脚本。shell脚本的编写就不多少了,主要讲讲系统定时脚本的编辑:
系统定时文件(crontab),这个文件(系统,针对所有用户)在linux中一般在/etc/crontab
查看当前用户的定时任务$ crontab -l
编辑当前用户的定时任务 $ crontab -e (全局定时任务的编辑 $ sudo vi /etc/crontab)
删除当前用户的定时任务 $ crontab -r
注:使用 crontab -e编辑当前用户的定时任务时,会在/temp下临时创建一个定时脚本,编写保存后提交,即删除。
crontab中关于定时的规则(格式):
分钟 小时 日 月 星期 命令
* * * * * *
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列 表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
“*”代表取值范围内的数字,
“/”代表”每”,
“-”代表从某个数字到某个数字,
“,”分开几个离散的数字
例:
0 */2 * * * /sbin/service httpd restart 意思是每两个小时重启一次apache 50 7 * * * /sbin/service sshd start 意思是每天7:50开启ssh服务 50 22 * * * /sbin/service sshd stop 意思是每天22:50关闭ssh服务 0 0 1,15 * * fsck /home 每月1号和15号检查/home 磁盘 1 * * * * /home/bruce/backup 每小时的第一分执行 /home/bruce/backup这个文件 00 03 * * 1-5 find /home "*.xxx" -mtime +4 -exec rm {} \; 每周一至周五3点钟,在目录/home中,查找文件名为*.xxx的文件,并删除4天前的文件。 30 6 */10 * * ls 意思是每月的1、11、21、31日是的6:30执行一次ls命令
编辑后保存退出系统即可自动开始定时执行。