Ubuntu 定时任务cron

ubuntu版本:20.04 LTS

Cron配置

  1. 配置Cron日志
    ubuntu默认未开启cron日志,手动启用日志

    vim /etc/rsyslog.d/50-default.conf
    

    在这里插入图片描述

    将该行#删除
    esc输入:wq!保存并退出

    service rsyslog  restart # 重启rsyslog服务
    vim /var/log/corn.log  # 查看日志
    
  2. 配置Cron

    1. 输入 crontab -e 进入文件编辑页面

    2. 按下 i 进入编辑模式

      例如:每天凌晨3点执行restore.sh
      0 3 * * * root /usr/Johnny/restore.sh

    3. 按下 exec 退出编辑模式

    4. 输入 :wq! 保存并退出 / :qa 是直接退出

    5. 输入 sudo service cron restart 重启

    crontab执行时间计算 - 在线工具 (tool.lu)

疑难杂症

No MTA installed, discarding output

在这里插入图片描述
该信息提示没有安装邮件服务MTA(因特网邮件传送代理;Mail Transfer Agent),因为cron的错误信息是通过邮件发送的,可以通过安装邮件服务器解决该问题。在Linux操作系统中有很多种邮件传输代理,每个MTA都有自己的特点。我们安装postfix作为邮件服务。

  1. 安装postfix

    sudo apt-get install postfix
    sudo dpkg-reconfigure postfix
    

    如果提示找不到这个包,可以更换镜像源
    国内有很多Ubuntu的镜像源,有阿里的、网易的,教育网的比如:清华源、中科大源。
    这里以网易163源为例看一下如何修改Ubuntu 20.04的默认源。
    第一步:备份源文件:

    sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
    

    第二步:编辑/etc/apt/sources.list文件
    在文件最前面添加以下条目(操作前请做好相应备份):

    vi /etc/apt/sources.list
    

    网易163源
    # 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释

    deb http://mirrors.163.com/ubuntu/ focal main restricted universe multiverse
    deb http://mirrors.163.com/ubuntu/ focal-security main restricted universe multiverse
    deb http://mirrors.163.com/ubuntu/ focal-updates main restricted universe multiverse
    deb http://mirrors.163.com/ubuntu/ focal-backports main restricted universe multiverse
    # deb-src http://mirrors.163.com/ubuntu/ focal main restricted universe multiverse
    # deb-src http://mirrors.163.com/ubuntu/ focal-security main restricted universe multiverse
    # deb-src http://mirrors.163.com/ubuntu/ focal-updates main restricted universe multiverse
    # deb-src http://mirrors.163.com/ubuntu/ focal-backports main restricted universe multiverse
    # 预发布软件源,不建议启用
    # deb http://mirrors.163.com/ubuntu/ focal-proposed main restricted universe multiverse
    # deb-src http://mirrors.163.com/ubuntu/ focal-proposed main restricted universe multiverse
    

    第三步:执行更新命令:

    sudo apt-get update
    sudo apt-get upgrade
    

    选择Internet Site
    在这里插入图片描述
    System mail name填写codc.cn,ccdc是我登录的用户名。点击 OK,postfix继续安装,完毕后自动启动。
    在这里插入图片描述
    安装完毕后重启服务

    sudo systemctl restart postfix
    

    现在就可以了,不需要做其他配置。
    等待几分钟,敲一下回车,屏幕显示
    在这里插入图片描述
    说明内容已经发送到/var/mail/root中,查看:

    vim /var/mail/root
    
  2. 在cron中执行shell脚本的时候需要输出的log日志时,可以将输出的log重定向到var/syslog

    sh /opt/test/shell.sh>/var/log/syslog
    

xxx:not found

如果出现类似 crontab /bin/sh: 1: /usr/Johnny/restore.sh: not found 的情况
检查时是通过 crontab -e 还是 vim /etc/crontab 编辑的cron文件

  1. crontab -e
    */5  *  *  *  * /home/word2pdf.sh > /home/log/word2pdf.log 2>&1 	#正确
    */5  *  *  *  * root /home/word2pdf.sh > /home/log/word2pdf.log 2>&1 	#错误 报错/bin/sh: root: 未找到命令
    
  2. vim /etc/crontab
    */5  *  *  *  * root /home/word2pdf.sh > /home/log/word2pdf.log 2>&1 #正确
    
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值