Linux定时任务没有执行问题分析与总结

昨天晚上让运维帮我更新上线了一个shell脚本,并添加到定时任务中准备凌晨12点06分执行,当我早上5点17醒来的时候,总感觉不对就去查邮件看看定时任务是否执行了,一看没有执行,然后直接远程到服务器,发现脚本执行只用了6秒,说明脚本是被调用了,那么就直接排除了缺少执行权限的问题,那到底是什么问题呢?随后又手动执行了一次,发现报错说脚本中有回车换行符,奇怪了,突然明白是windows和linux的编码格式不一样,马上用dos2unix对文件进行了转码,再执行,一切正常了,这点值得注意!

现在总结一下:

定时任务没有被执行有以下两种可能:

1、被执行的脚本没有执行权限,这种情况 直接授权

chmod 755 xxx.sh

2、被执行的脚本编码有问题,这种情况直接转码
  
dos2unix xxx.sh

我们也可下载一个windows版的dos2unix,转完码后再上传到Linux服务器

补充:linux定时任务

每天早上6点
0 6 * * * echo "Good morning." >> /tmp/test.txt //注意单纯echo,从屏幕上看不到任何输出,因为cron把任何输出都email到root的信箱了。

每两个小时
0 */2 * * * echo "Have a break now." >> /tmp/test.txt 

晚上11点到早上8点之间每两个小时和早上八点
0 23-7/2,8 * * * echo "Have a good dream" >> /tmp/test.txt

每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点
0 11 4 * 1-3 command line

1月1日早上4点
0 4 1 1 * command line SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root //如果出现错误,或者有数据输出,数据作为邮件发给这个帐号 HOME=/

每小时执行/etc/cron.hourly内的脚本

01 * * * * root run-parts /etc/cron.hourly

每天执行/etc/cron.daily内的脚本

02 4 * * * root run-parts /etc/cron.daily

每星期执行/etc/cron.weekly内的脚本
22 4 * * 0 root run-parts /etc/cron.weekly

crontab权限问题到/var/adm/cron/下一看,文件cron.allow和cron.deny是否存在

用法如下:

1、如果两个文件都不存在,则只有root用户才能使用crontab命令。
2、如果cron.allow存在但cron.deny不存在,则只有列在cron.allow文件里的用户才能使用crontab命令,如果root用户也不在里面,则root用户也不能使用crontab。
3、如果cron.allow不存在, cron.deny存在,则只有列在cron.deny文件里面的用户不能使用crontab命令,其它用户都能使用。
4、如果两个文件都存在,则列在cron.allow文件中而且没有列在cron.deny中的用户可以使用crontab,如果两个文件中都有同一个用户,
以cron.allow文件里面是否有该用户为准,如果cron.allow中有该用户,则可以使用crontab命令。

时间: 2024-09-25 01:04:59

Linux定时任务没有执行问题分析与总结的相关文章

crontab linux脚本-Linux定时任务不执行怎么办?

问题描述 Linux定时任务不执行怎么办? 要定时执行一个脚本,直接vi /etc/crontab,添加如下信息: 05 10 * * * root echo "JBAAAAAa" >> /tmp/test.txt 33 09 * * * root /usr/local/flumeStart.sh 第一个能执行,第二个就是不执行,写的也是绝对路径,单独执行脚本也是没问题的:这是日志: CROND[54236]: (root) CMD ( echo "JBAAAAA

quartz 定时任务-问个问题 quartz 在Linux下 定时任务不执行是个什么情况!

问题描述 问个问题 quartz 在Linux下 定时任务不执行是个什么情况! 数据库 在Linux下 ! 应用在Windows下 如果数据库在Windows下 定时任务正常,反之不行!

linux中crontab定时任务未执行错误总结

没有按照规范写以下的shell脚本导致执行失败通过CentOS中的定时任务执行shell脚本失败,进行排查: 1)手动执行shell脚本(sh backup.sh)成功执行,排除sh脚本的语法错误. 2)通过nano /etc/crontab命令查看定时任务,发现除过执行sh的定时任务外,其他任务都能正常执行.检查其代码, 发现对SHELL.PATH.MAILTO.HOME还没有好好了解过,以往都是注意下面的时间规则,所以查了一下定义: 1)SHELL,变量的值指定shell 环境(此处默认为

linux定时任务-Linux定时任务问题,设置了一个定时任务,但是却同时执行了3次,请问时怎么回事?怎么修改?

问题描述 Linux定时任务问题,设置了一个定时任务,但是却同时执行了3次,请问时怎么回事?怎么修改? 配置的定时任务: 定时任务执行了3次: 为什么定时任务同时执行了3遍,怎么解决此问题? 解决方案 linux定时任务的设置linux定时任务的设置 解决方案二: 看下是不是任务添加了3次. 解决方案三: 没有,任务的执行时间都是一样的,pid不一样,是同时执行了3次 解决方案四: 你这个定时任务是每三分钟执行一次,表达式设置的不对 解决方案五: 已经解决了,把服务器重启了就自动好了.很奇怪 解

sqoop导出数据脚本放到 linux定时任务中不执行

问题描述 sqoop导出数据脚本放到 linux定时任务中不执行 功能描述:将hive中的数据到出到mysql. 在linux中,crontab -e中加入定时任务,脚本为test.sh,内容如下: sqoop export --connect jdbc:mysql://192.168.80.101:3306/test --username root --password root --table RST_ERR --export-dir /user/hive/warehouse/test.db

Linux 定时任务——crontab 的使用

cron 是一个可以用来根据时间.日期.月份.星期的组合来调度对重复任务的执行的守护进程. 名称 : crontab  使用权限 : 所有使用者  使用方式 :  crontab [ -u user ] file  crontab [ -u user ] { -l | -r | -e }  说明 :  crontab 是用来让使用者在固定时间或固定间隔执行程序之用,换句话说,也就是类似使用者的时程表.-u user 是指设定指定 user 的时程表,这个前提是你必须要有其权限(比如说是 root

crontab-php代码写入的定时任务无法执行

问题描述 php代码写入的定时任务无法执行 任务是由php代码写入的. 代码为:exec('*/1 * * * * ls >> /temp/ll.log',$output); php 对应的 linux 用户:www #crontab -uwww -l */1 * * * * ll >> /temp/ll.log 日志信息: (CRON) ERROR chdir failed (/dev/null): Not a directory 解决方案 PHP定时执行的代码php执行定时任务

Linux下DDOS攻击木马分析报告

本文讲的是Linux下DDOS攻击木马分析报告,在最近的一次给用户做服务器系统安全检测的过程中发现一台服务器,频繁向外发包,网页打开缓慢,上服务器提取了样本的情况分析如下: 1. 样本基本信息 2. 样本概述 样本解密数据用以配置,安装各种不同的启动项,远程连接ip:www.linux#cc:6001(由于文件路径不同所连接的端口不一样,但是ip不变).生成不同路径下的副本来执行守护,过滤等,释放ss.netstat等执行过滤病毒,木马端口信息.根据返回信息实施各种不同的类型的DDOS攻击. 3

Tomcat 远程代码执行漏洞分析(CVE-2017-12615)及补丁 Bypass

本文讲的是Tomcat 远程代码执行漏洞分析(CVE-2017-12615)及补丁 Bypass, (注:图片来源于网络) Apache Tomcat 修复了2个严重级别的漏洞, 分别为: 信息泄露漏洞(CVE-2017-12616).远程代码执行漏洞(CVE-2017-12615),在某些场景下,攻击者将分别能通过这两个漏洞,获取用户服务器上 JSP 文件的源代码,或是通过精心构造的攻击请求,向用户服务器上传恶意 JSP 文件,通过上传的 JSP 文件 ,可在用户服务器上执行任意代码. 漏洞概