‘壹’ 用crontab 定时执行python脚本不生效是什么原因
编辑/etc/crontab 末尾加入0 8 * * * root /path/A.sh0 18 * * * root /path/A.sh保存 退出即可
‘贰’ crontab执行perl脚本不成功:手动执行perl脚本没问题
chmod 755 文件夹
‘叁’ crontab中启动的shell脚本不能正常运行,但是使用手动执行没有问题
1、这种情况多数为环境变量加载问题
2、例如你用ls命令,其实依赖PATH环境变量
3、可以改为全路径,比如/bin/ls
4、或者将环境变量加载到脚本
#!/bin/sh
. ~/.bash_profile
ls -lrt $*
‘肆’ 使用crontab,定时执行一个python脚本,怎么不能用
注意两点:
1. crontab 不会有你设的环境变量
2. crontab 要用绝对路径
正确做法写一个shell脚本,在脚本内设置环境变量及执行python语句,然后crontab执行该脚本。
#/usr/bin/bash
PATH=/home//Python-3.3.3:/home//Python-3.3.3/bin:$PATH
python/home/xxx.py
‘伍’ linux下的crontab配置后怎么不能执行
经验之谈:
1、查看语法是否错误,如分钟取值范围为 0-59; 小时取值范围 0-23;最多5列时间单位等。
2、查看crond进程是否启动。
3、查看/var/log/cron日志,确定脚本是否在需要的时间内执行了。
4、由于环境变量原因,脚本中的命令尽量写全路径,如 touch 写成 /bin/touch;ftp 写成 /usr/bin/ftp; 或者在脚本中增加完整的用户环境变量引用。
‘陆’ 为啥直接编辑/etc/crontab无法生效的问题
脚本可手动执行正常,crontab执行却没达预期结果,可从几个方面考虑,
1.脚本权限
2.路径
3.环境变量
crontab读取环境变量与终端是不同的,一种方式可将相关环境变量设置到.bashrc文件,另一种方式可在脚本中设置相关环境变量
‘柒’ 为什么放在crontab中的任务执行了但是没有效果
1. 新增crontab中的任务
oracle@BI-DB-HIS:/expdata/rpt/scripts$crontab -e
"/var/tmp/aaa002939" 7 lines, 496 characters
0 10 * * * /expdata/rpt/scripts/create_snapshot.sh>/dev/null 2>&1
"/var/tmp/aaa002939" 7 lines, 497 characters
warning: commands will be executed using /usr/bin/sh
2. 到10点中的时候,任务没有执行,手工执行多次,确认没有问题
3. 查看.sh和.sql的权限问题,确认也没有问题
4. google到crontab 是不会根据用户自动搜索环境变量的,man的信息如下:
Users who desire to have their .profile executed must explicitly do so
in the crontab entry or in a script. called by the entry.
5. 在.sh脚本中加入export 环境变量
原始脚本:
oracle@BI-DB-HIS:/expdata/rpt/scripts$more /expdata/rpt/scripts/create_snapshot.sh
sqlplusleiz/mleiz@bidb @/expdata/rpt/scripts/create_snapshot.sql
oracle@BI-DB-HIS:/expdata/rpt/scripts$more /expdata/rpt/scripts/create_snapshot.sql
exec dbms_workload_repository.create_snapshot();
exit;
更新后脚本
oracle@BI-DB-HIS:/expdata/rpt/scripts$vi create_snapshot.sh
"create_snapshot.sh" 1 line, 70 characters
export ORACLE_BASE=/oracle
export ORACLE_HOME=$ORACLE_BASE/proct/10.2/db
export ORACLE_SID=bidb
export PATH=/usr/bin:/etc/:/usr/sbin:/usr/ucb:/usr/local/bin:$ORACLE_HOME/bin:/usr/bin/X11:/sbin:$PATH
export NLS_LANG=american_america.ZHS16GBK
‘捌’ crontab为什么没有执行
应该是在后台执行的吧,屏幕上应该不会显示。你可以看一下邮件或者日志看你的任务是否执行。也可以将结果重定向某个文件(如 ls -l /etc > /home/test),看你的脚本是否执行。
‘玖’ 你好,关于crontab配置shell脚本不执行的问题能帮忙解答下不
先试试直接执行shell脚本,如果ok,那就是因为你没有引入用户的环境变量,在脚本开始加一句 . ~/.profile引入用户环境变量即可。
如果你这个用户直接执行shell都不成功,就是shell本身的问题,和crontab没关系。