赞
踩
陈拓 2021/09/09-2020/09/12
lsb_release -a
为了定时执行程序启用cron。
我的项目需求为每5分钟执行一次hkCapJpeg1。下面通过编辑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,这个文件自己创建。
保存后会立即生效。
控制台信息就是程序在前台运行时显示的信息。因为现在程序在后台运行,为了能看到这些信息,我们将它们重新定向到/home/ccdc/HKCapture/hkCapJpeg/info
cat info
已经有了程序运行的信息,cron已经正常运行。
但这时程序结果并不正确,去哪里查看错误信息呢?
/etc/init.d/cron status
No MTA installed, discarding output
该信息提示没有安装邮件服务MTA(因特网邮件传送代理;Mail Transfer Agent),因为cron的错误信息是通过邮件发送的。
在Linux操作系统中有很多种邮件传输代理,每个MTA都有自己的特点。我们安装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
现在就可以了,不需要做其他配置。
等待几分钟,敲一下回车,屏幕显示
查看邮件信息。
cat /var/mail/ccdc
找不到动态库libhcnetsdk.so文件,编辑ld.so.conf告诉系统动态库在哪里。
见《error while loading shared libraries: libhcnetsdk.so: cannot open shared object问题解决》
https://blog.csdn.net/chentuo2000/article/details/120261879
一文。
见《在CRON定时任务中xxx not found错误处理》
https://blog.csdn.net/chentuo2000/article/details/120268845
程序调试完成后为了节省空间,将错误输出重定向到/dev/null。
即将
> /home/ccdc/HKCapture/hkCapJpeg/info
替换为
> /dev/null 2>&1
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。