linux中设置定时任务,最多只需两步

时间:2020-11-27 08:10:21

    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命令

编辑后保存退出系统即可自动开始定时执行。