我想知道如何在每次执行时准确地看到cron作业正在做什么。日志文件位于哪里?或者我可以把输出发送到我的邮箱吗?我已经设置了电子邮件地址,当cron作业运行时发送日志,但我还没有收到任何东西。
当前回答
如果你用sudo运行一些命令,它将不允许。须藤需要洗漱。
其他回答
这是我的代码:
* * * * * your_script_fullpath >> your_log_path 2>&1
默认cron日志到/var/log/syslog,这样你就可以看到cron相关的条目:
grep CRON /var/log/syslog
https://askubuntu.com/questions/56683/where-is-the-cron-crontab-log
在Ubuntu上,你可以让CRON .log文件只包含CRON条目。
取消/etc/rsyslog.d/50-default.conf文件中提到cron的行注释:
# Default rules for rsyslog.
#
# For more information see rsyslog.conf(5) and /etc/rsyslog.conf
#
# First some standard log files. Log by facility.
#
auth,authpriv.* /var/log/auth.log
*.*;auth,authpriv.none -/var/log/syslog
#cron.* /var/log/cron.log
保存并关闭文件,然后重新启动rsyslog服务:
sudo systemctl restart rsyslog
你现在可以看到cron日志条目在它自己的文件中:
sudo tail -f /var/log/cron.log
示例输出:
Jul 18 07:05:01 machine-host-name CRON[13638]: (root) CMD (command -v debian-sa1 > /dev/null && debian-sa1 1 1)
但是,您不会看到关于/etc/cron中实际运行的脚本的更多信息Daily或/etc/cron.每小时一次,除非这些脚本将输出直接输出到cron.log(或者其他一些日志文件)。
如果你想验证crontab是否正在运行,而不需要在crontab .log或syslog中搜索它,创建一个crontab,将输出重定向到你选择的日志文件-类似于:
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h dom mon dow command
30 2 * * 1 /usr/local/sbin/certbot-auto renew >> /var/log/le-renew.log 2>&1
步骤从:https://www.cyberciti.biz/faq/howto-create-cron-log-file-to-log-crontab-logs-in-ubuntu-linux/
如果你用sudo运行一些命令,它将不允许。须藤需要洗漱。
* * * * * myjob.sh >> /var/log/myjob.log 2>&1
是否将cron作业的所有输出记录到/var/log/myjob.log
你可以用mail发送电子邮件。大多数系统将通过电子邮件将未处理的cron作业输出发送给root或相应的用户。
推荐文章
- 为什么logcat没有显示任何东西在我的Android?
- 在Python中记录未捕获的异常
- 重定向复制的标准输出到日志文件从bash脚本本身
- Python日志:使用时间格式的毫秒
- IE8的console.log怎么了?
- 如何从Kubernetes复制控制器的所有pod中获取日志?
- Spring RestTemplate -如何启用请求/响应的完整调试/日志记录?
- 每周测试一次cron作业
- Crontab每周的日期语法
- 子进程命令的实时输出
- 我怎么能让cron作业每30分钟运行一次?
- 如何写一个文件,使用日志Python模块?
- 如何模拟环境cron执行脚本?
- “静态最终日志记录器”应该用大写声明吗?
- 日志级别—重新登录—分配日志级别的经验法则