原文:linux_crontab任务配置失败原因总结及提示昨天在配置crontab时遇到了一些坑。crontab虽然比较熟悉,但是已经一年多没有接触过了。有点生疏了,又犯了基本错误。顺便整理一下。crontab配置不生效怎么办?按以下顺序处理:1、单独取出命令,在终端执行暴露以下问题:a、脚本(chmod+xxx.sh)是否存在权限问题b、是否存在低级错误如(handshaking)writingthewrongpathc,如果依赖特定的conda环境,需要condaactivatexxx2,是否使用相对路径,如果1执行ok,那么a,检查x命令中的.sh并替换为绝对路径如/home/xxx/x.sh,y.py也一样,使用完整的绝对路径。b、py如果依赖特定的conda,必须在conda中使用特定的py,下面是conda的center环境的python/home/john/anaconda3/envs/center/bin/pythonxx.py3,是否启动crontab服务方法一,每次修改crontab,都会自动回显:crontab:installingnewcrontab,表示服务已经启动john@VM-0-4-ubuntu:~$crontab-ecrontab:installingnewcrontab方法二servicecronstatus下会显示activate(running)之类的字样4、查看服务器时间,国外默认时间和国内有时间差(查看时间命令(linux):date)5、查看时间配置规则,是否正确(从右到左,周年纪念日6.查看cron执行日志(xx命令是否在xx时间启动)sudotail-20f/var/log/cron.log如果这个文件不存在怎么办?sudovim/etc/rsyslog.d/50-default.conf找到以cron开头的行,把它前面的注释符号#去掉7,把这个字符转义。这是昨天才注意到的。在执行数据库备份任务之前,我使用py脚本,根据日期自动实现备份,防止同名覆盖。我注意到crontab还支持在命令中混合变量。简单的备份不需要通过py脚本来实现。在终端中:now=date+%Y%m%d&&tar-xzvfxx_$now.tar.gzxxx/crontab:now=`date+\%Y\%m\%d`&&tar-xzvfxx_$now.tar.gzxxx/注意“%”前的转义“\”,外面的不是单引号,而是键盘上半部分左边的那个键。
