美文网首页
crontab 定时任务

crontab 定时任务

作者: 韩小禹 | 来源:发表于2019-04-19 16:26 被阅读0次

    查看当前用户的定时任务列表

    # 执行该命令会显示当前登录用户的定时任务列表,如下所示
    crontab -l -u $USER
    # 已有定时任务
    50 15 * * * sh /var/tmp/shell_script/1.sh
    

    创建(编辑)定时任务列表

    # 执行该命令会打开crontab 的任务列表,并进行编辑
    crontab -e
    

    定时任务格式

    # 分钟  小时  每月第几天  月份  每周第几天  命令
    min hour dayofmonth month dayofweek command
    
    # 示例
    15 18 * * * sh /var/tmp/shell_script/1.sh
    # 每天下午6点15分执行/var/tmp/shell_script目录下的1.sh脚本
    
    15 18 1 * * sh /var/tmp/shell_script/1.sh
    # 每月1号下午6点15分执行/var/tmp/shell_script目录下的1.sh脚本
    
    # 可以使用逗号区分多个时间,比如每月1号,2号,3号
    15 18 1,2,3 * * sh /var/tmp/shell_script/1.sh
    # 每月1号,2号,3号下午6点15分执行/var/tmp/shell_script目录下的1.sh脚本
    

    删除定时任务

    # 执行该命令会删除该用户的所有定时任务
    crontab -r
    

    注意

    • 一定要设置crontab的输出重定向,如果crontab不重定向输出,并且crontab所执行的命令有输出内容,那么输出的内容会以邮件的形式发送给用户,内容存储在邮件文件/var/spool/mail/$user中,如果命令执行比较频繁,或者命令输出内容较多,会使这个邮件文件不断追加内容,文件越来越大。而邮件文件一般存放在根分区,根分区一般相对较小,所以会造成根分区写满而无法登录服务器。所以无论何时,最好在crontab命令中都加上输出重定向到文件或者/dev/null。

    • /dev/null:/dev/null 代表空设备文件。

    • > 代表重定向到哪里,例如:echo "123" > /var/tmp/shell_script/hello.txt

    • 1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null"。

    • 2 表示stderr标准错误。

    • & 表示等同于的意思,2>&1,表示2的输出重定向等同于1。

    • 那么>/dev/null 2>&1的意思就是:标准输出重定向到空设备文件,标准错误输出重定向等同于标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。

    相关文章

      网友评论

          本文标题:crontab 定时任务

          本文链接:https://www.haomeiwen.com/subject/jjfcgqtx.html