Linux系统crontab定时执行Shell脚本常用命令和踩坑记录 |
您所在的位置:网站首页 › bash脚本权限 › Linux系统crontab定时执行Shell脚本常用命令和踩坑记录 |
文章目录
crontab定时执行Shell脚本打开cron的log功能踩坑记录加解决方案
crontab是cron的配置文件,可将其成为作业列表。 crontab定时执行Shell脚本常用指令: #省略-u username表表示操作当前用户的 crontab -u username #编辑工作表([-u username]可以缺省) crontab -u username -e #列出工作表里的命令([-u username]可以缺省) crontab -u username -l #删除工作列表 crontab -u username -r定时执行Shell脚本示例: # 开启服务,首次开启需要选择编辑器,按需选取即可 sudo service crontab restart # 继续输入以下指令进行工作表配置 crontab -u username -e执行后,打开编辑器可以看到以下提示信息: 方便调试,我们还需要设置让cron的log功能开启。 #打开conf文件,# 取消cron.log行注释 sudo vim /etc/rsyslog.d/50-default.conf # 重启服务 sudo service rsyslog restart # 查看cron.log vim /var/log/cron.log 踩坑记录加解决方案尝试定时运行后,发现没有执行成功,查看log之后,看到以下错误。 (CRON) info (No MTA installed, discarding output)查询了一下,是因为我的定时脚本包含smtp发送邮件的功能,而Ubuntu系统不含MTA(Mail Transfer Agent),因此需要通过sudo apt-get install postfix安装邮件服务。 安装后,发现脚本依然没有执行成功,log信息过于简单,还是需要查看标准输出信息和执行时的错误信息才方便debug。 #修改示例脚本 0 9 * * 1,3,5 test.sh>test.out 2>&1其中>test.out 表示将标准输出重定向写入到test.out文件中。2>&1表示将错误输出重定向到标准输出。 加入以上代码,则错误提示和脚本的标准输出都会打印到test.out中,也就是说,test.sh执行完成后,test.out中能看到所有输出的信息。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |