Ubuntu系统下crontab的使用

最近一个项目,须要用到一个定时任务,先说crontab的经常使用命令。php


crontab -u //设定某个用户的cron服务,通常root用户在执行这个命令的时候须要此参数
crontab -l //列出某个用户cron服务的详细内容
crontab -r //删除没个用户的cron服务
crontab -e //编辑某个用户的cron服务

接下来个人调试过程shell

(1)编辑加入本身的命令vim

crontab -e  //编辑某个用户的cron服务

*/1 * * * * /usr/bin/php   /var/send.php   每分钟都执行一次服务器

send.php学习

编辑以下this

<?php
    echo 'this is a work';
?>

没有出现运行结果,因而乎,就去查看日志,结果在/var/log下没有发现 cron.log文件,这我就纳闷了,why?spa

通过研究发现原来日志服务器rsyslog没有开启对crontab的支持,接下来进入/etc/rsyslog.d/ 调试

cd /etc/rsyslog.d/
ls
20-ufw.conf  50-default.conf //会有连个文件
vim 50-default.conf
编辑以下:

找到 cron.* 所在行rest

#  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
#daemon.*            -/var/log/daemon.log
kern.*                -/var/log/kern.log
#lpr.*                -/var/log/lpr.log
mail.*                -/var/log/mail.log
#user.*                -/var/log/user.log

去掉前面的#。ok,接下来 使用命令cron restart重启,啊哟,报错了,日志

cron: can’t lock /var/run/crond.pid, otherpid may be

解决方案:

rm /var/run/crond.pid
ps -A | grep cron
kill 进程ID

而后继续 cron restart,Ok了,可是还没还结果,如今咱们能够看看日志啦。

tail /var/log/cron.log

发现错误以下:

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

出错缘由:

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

有两个缘由会致使这个错误发生:

 1,当你执行命令是shell脚本时

  解决方案:在每条命令后面加上:

  >/dev/null 2>&1

 2,当你向窗口输出时,由于内容的输出是cron经过邮件发送的

  解决方案:将输出内容导入一个文件 >> /tmp/test.txt

 

更过的进阶技术能够关注公众号:进阶的脚步  回复学习资料  有惊喜哦

相关文章
相关标签/搜索