cron定时任务和No MTA installed, discarding output错误处理

陈拓 2021/09/09-2020/09/12

0. 我的系统

lsb_release -a

 

1. 设置cron

为了定时执行程序启用cron。

我的项目需求为每5分钟执行一次hkCapJpeg1。下面通过编辑crontab进行设置。

  • crontab编辑命令

crontab -e

 

选择1:

 

在crontab的最后添加:

*/5 * * * * /home/ccdc/HKCapture/hkCapJpeg/hkCapJpeg1 192.168.1.21 8000 admin xxxxxxxx 33 > /home/ccdc/HKCapture/hkCapJpeg/info

 

  • 参数说明

其中*/5表示每隔5分钟运行一次:/home/ccdc/HKCapture/hkCapJpeg/hkCapJpeg1

后面都是hkCapJpeg1的运行参数。

注意要使用绝对路径!

控制台信息输出到文件/home/ccdc/HKCapture/hkCapJpeg/info,这个文件自己创建。

保存后会立即生效。

2. 错误排除No MTA installed, discarding output

  • 查看控制台信息

控制台信息就是程序在前台运行时显示的信息。因为现在程序在后台运行,为了能看到这些信息,我们将它们重新定向到/home/ccdc/HKCapture/hkCapJpeg/info

cat info

 

已经有了程序运行的信息,cron已经正常运行。

但这时程序结果并不正确,去哪里查看错误信息呢?

  • 查看cron状态

/etc/init.d/cron status

 

No MTA installed, discarding output

该信息提示没有安装邮件服务MTA(因特网邮件传送代理;Mail Transfer Agent,因为cron的错误信息是通过邮件发送的。

在Linux操作系统中有很多种邮件传输代理,每个MTA都有自己的特点。我们安装postfix作为邮件服务。

  • 安装postfix服务

sudo apt-get install -y postfix

选择Internet Site

点击<OK>

System mail name填写ccdc.cn,ccdc是我登录的用户名。

 

点击<OK>,postfix继续安装,完毕后自动启动。

sudo dpkg-reconfigure postfix命令可以修改postfix配置。

  • 重启服务

sudo systemctl restart postfix

现在就可以了,不需要做其他配置。

  • 查看cron信息

等待几分钟,敲一下回车,屏幕显示

 

查看邮件信息。

cat /var/mail/ccdc

 

找不到动态库libhcnetsdk.so文件,编辑ld.so.conf告诉系统动态库在哪里。

3. 找不到动态库文件解决方法

见《error while loading shared libraries: libhcnetsdk.so: cannot open shared object问题解决》

https://blog.csdn.net/chentuo2000/article/details/120261879

一文。

4. 在CRON定时任务中xxx not found错误处理

见《在CRON定时任务中xxx not found错误处理》

https://blog.csdn.net/chentuo2000/article/details/120268845

5. 重定向输出

程序调试完成后为了节省空间,将错误输出重定向到/dev/null。

即将

> /home/ccdc/HKCapture/hkCapJpeg/info

替换为

> /dev/null 2>&1

Guess you like

Origin blog.csdn.net/chentuo2000/article/details/120269647