zoukankan      html  css  js  c++  java
  • syslog中的“(CRON)信息(未安装MTA,丢弃输出)”错误,crontab定时任务失效

    解决(CRON) info (No MTA installed, discarding output)
    问题
    使用crontab进行设置定时任务,任务没有执行.
    使用命令

    tail /var/log/syslog
    

    查看文件,看到cron报错:

    (CRON) info (No MTA installed, discarding output)
    

    主要原因
    报错的主要原因是没有配置邮件服务器.

    导致出错的情况及解决办法
    有两种情况会导致这个现象.

    (1)命令中含有shell指令
    执行命令

    crontab -e
    

    查看当前用户的计划任务
    当你运行的任务中包含shell命令,就会报错.例如下面的第二个任务:

    * * * * * date >log
    * * * * * ./temp.sh >`date`.log
    

    可以通过安装邮件服务器解决该问题.
    或者是把该shell命令放到一个文件中,执行该文件.然后重定向到null文件.

    (2)执行任务过程中会往屏幕输出内容
    当你执行的是个脚本文件时,你可以把文件的输出重定向到某个文件中.例如:

    * * * * * cd /home/wang && ./temp.sh >temp.log
    

    或者不需要保留执行的输出,则重定向到null中:

    * * * * * cd /home/wang && ./temp.sh >/dev/null 2>&1
    

    Linux使用邮件将通知发送给用户。大多数Linux发行版都安装了邮件服务(包括MTA)。Ubuntu没有。
    您可以安装邮件服务(例如postfix)来解决此问题。

    sudo apt-get install postfix
    

    或者您可以忽略它。我认为cron无法发送消息与CPU峰值无关(这与cron正在运行的基础作业有关)。安装MTA然后阅读消息可能是最安全的(这mutt是一个很好的系统邮件阅读器)。

  • 相关阅读:
    A02 React+Antdesign 创建新项目
    B02 Vue+Element 创建新项目
    B01 Vue+Element 开发环境搭建
    A01 React+Antdesign 开发环境准备
    批量处理TXT转csv
    pyinstall python文件打包成二进制exe文件
    vue前端与django后端数据交互
    页面自适应
    ETL-kettle通过java代码传递参数,调用job调用转换
    ETL-kettle基本操作,表的输入输出
  • 原文地址:https://www.cnblogs.com/netflix/p/15391794.html
Copyright © 2011-2022 走看看