linux定时任务执行没结果,手动执行有结果问题总结

摘要:
/bin/shsource/etc/profileexportRUN_CONF=/home/d139/CONF/platform/cbp/cbp_jboss.CONF/usr/local/jboss-4.0.5/bin/run。Sh-cmev&3)手动执行脚本,但不执行crontab时。此时,我们必须大胆地怀疑是环境变量导致了问题,我们可以尝试将环境变量直接引入crontab来解决问题。如果重新启动cron,请立即执行它。2) 执行每个作业后,系统将自动将输出发送给当前系统用户。3) 当crontab突然失败时,可以尝试/etc/initD/rondrestart解决问题。4) 千万不要乱运行crontab-r。5) 在crontab中,“%”具有特殊含义,即换行。如果要使用它,必须转义%。例如,频繁使用的日期“+%Y%m%d”将不会在crontab中执行。应替换为日期“+%Y%m%d”`

今天写了个脚本手动执行有结果,但是放到系统定时任务跑却没结果,之前也遇到这种问题解决了没记录后面又懵逼了一次~~~

如下图:

手动执行有结果

linux定时任务执行没结果,手动执行有结果问题总结第1张

放到定时任务中每五分钟执行一次

linux定时任务执行没结果,手动执行有结果问题总结第2张

解决方法:

脚本中加载系统环境变量

source /etc/profile
linux定时任务执行没结果,手动执行有结果问题总结第3张

如果不加入脚本定时任务可以这样写效果一样

*/5 * * * * ./etc/profile;sh /fs01/scripts/ulimit.sh

原因如下:

crontab与环境变量
不要假定cron知道所需要的特殊环境,它其实并不知道。所以你要保证在shelll脚本中提供所有必要的路径和环境变量,除了一些自动设置的全局变量。所以注意如下3点:
1)脚本中涉及文件路径时写全局路径;
2)脚本执行要用到java或其他环境变量时,通过source命令引入环境变量,如:
cat start_cbp.sh
#!/bin/sh
source /etc/profile
export RUN_CONF=/home/d139/conf/platform/cbp/cbp_jboss.conf
/usr/local/jboss-4.0.5/bin/run.sh -c mev &
3)当手动执行脚本OK,但是crontab死活不执行时。这时必须大胆怀疑是环境变量惹的祸,并可以尝试在crontab中直接引入环境变量解决问题。如:
0 * * * * . /etc/profile;/bin/sh /var/www/java/audit_no_count/bin/restart_audit.sh

3. 其他应该注意的问题
1)新创建的cron job,不会马上执行,至少要过2分钟才执行。如果重启cron则马上执行。
2)每条 JOB 执行完毕之后,系统会自动将输出发送邮件给当前系统用户。日积月累,非常的多,甚至会撑爆整个系统。所以每条 JOB 命令后面进行重定向处理是非常必要的: >/dev/null 2>&1 。前提是对 Job 中的命令需要正常输出已经作了一定的处理, 比如追加到某个特定日志文件。
3)当crontab突然失效时,可以尝试/etc/init.d/crond restart解决问题。或者查看日志看某个job有没有执行/报错tail -f /var/log/cron。
4)千万别乱运行crontab -r。它从Crontab目录(/var/spool/cron)中删除用户的Crontab文件。删除了该用户的所有crontab都没了。
5)在crontab中%是有特殊含义的,表示换行的意思。如果要用的话必须进行转义\%,如经常用的date ‘+%Y%m%d’在crontab里是不会执行的,应该换成date ‘+\%Y\%m\%d’`

免责声明:文章转载自《linux定时任务执行没结果,手动执行有结果问题总结》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇python的paramiko模块Android 通知栏Notification的整合 全面学习 (一个DEMO让你完全了解它)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Linux中ps -ef , ps -aux命令的用法

Linux中ps -ef , ps -aux命令的用法 ## 其中各列的内容意思如下 UID //用户ID、但输出的是用户名 PID //进程的ID PPID //父进程ID C //进程占用CPU的百分比 STIME //进程启动到现在的时间 TTY //该进程在那个终端上运行,若与终端无关,则显示? 若为pts/0等,则表示由网络连接主机进程。 CM...

linux中ulimit作用

一、作用 Linux对于每个用户,系统限制其最大进程数。为提高性能,可以根据设备资源情况,设置各linux 用户的最大进程数。 ulimit主要是用来限制进程对资源的使用情况的,它支持各种类型的限制,常用的有: 内核文件的大小限制 进程数据块的大小限制 Shell进程创建文件大小限制 可加锁内存大小限制 常驻内存集的大小限制...

linux 系统centos新添加一个硬盘,分区格式化挂载操作

给服务器买一个硬盘,要使用一般要经过下面几部 ---------分区--》格式化--》挂载--------- 一。先熟悉几个命令和linux硬盘命名规则 1.lsblk ,查看挂载的所有磁盘 2.blkid ,查看磁盘分区的文件系统格式命令示例:blkid /dev/vdb1“TYPE”为“ext4”:表示为/dev/vdb1的文件系统是ext4。 3....

(6)centos安装和解压

一、rpm包安装方式步骤:1、找到相应的软件包,比如soft.version.rpm,下载到本机某个目录;2、打开一个终端,su -成root用户;3、cd soft.version.rpm所在的目录;4、输入rpm -ivh soft.version.rpm二、deb包安装方式步骤:1、找到相应的软件包,比如soft.version.deb,下载到本机某...

Linux mount/unmount命令(转)

格式:mount [-参数] [设备名称] [挂载点] 其中常用的参数有:-a 安装在/etc/fstab文件中类出的所有文件系统。-f 伪装mount,作出检查设备和目录的样子,但并不真正挂载文件系统。-n 不把安装记录在/etc/mtab 文件中。-r 讲文件系统安装为只读。-v 详细显示安装信息。-w 将文件系统安装为可写,为命令默认情况。-t  指...

Linux中hadoop配置hdfs

.前提是hadoop已经安装配置成功 2.主要是修改core-site.xml和hdfs-site.xml这两个配置文件 3.我使用的是notepad++连接Linux进行修改的 4.进入notepad++中查看目录找到这两个配置文件 5.首先要在Linux中建立存放name和data的文件 进入Linux输入命令如下 创建三个文件夹 6.编辑core...