linux中crontab不能正常执行原因

1 crond服务未启动

crontab不是Linux内核的功能,而是依赖一个crond服务,这个服务可以启动当然也可以停止。如果停止了就无法执行任何定时任务了,解决的方法是打开它:

crond

service crond start

如果提示crond命令不存在,可能被误删除了,CentOS下可以通过这个命令重新安装:

yum -y install crontabs

2 权限问题

比如:脚本没有x执行权限,解决方法:

增加执行权限,或者用bash abc.sh的方法执行

3 路径问题

有的命令在shell中执行正常,但是在crontab执行却总是失败。有可能是因为crontab使用的sh未正确识别路径,比如:以root身份登录shell后执行一个/root/test.sh,只要执行

./test.sh

就可以了。但是在crontab中,就会找不到这个脚本,比如写完整:

/root/test.sh

4 时差问题

因为服务器与客户端时差问题,所以crontab的时间以服务器时间为准。

5 变量问题

有时候命令中含有变量,但crontab执行时却没有,也会造成执行失败

时间: 2024-11-09 23:57:47

linux中crontab不能正常执行原因的相关文章

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

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

Linux中crontab任务计划不执行的问题分析

crond是Linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务. 使用权限: root用户和crontab文件的所有者 语法: crontab [-e [UserName]|-l [UserName]|-r [UserName]|-v [UserName]|File ] 说明: cro

linux中通过命令行执行mysql命令

有两种方法可以在命令行下执行sql命令.第一种是使用"-e"参数来指定需要执行的sql语句:第二种是通过管道的方式.语法及例子如下: 1.  代码如下 复制代码 MYSQL_HOME/bin/mysql -u用户名 -p密码 -D数据库名 -e"sql 语句" /usr/local/mysql/bin/mysql -uroot -p123456 -Dmysql -e"select host,user from user"; 2.  代码如下 复制

使用linux命令crontab间隔时间执行其它命令_Linux

1.1 /etc/crontab 文件 在/etc目录下有一个crontab文件,这里存放有系统运行的一些调度程序.每个用户可以建立自己的调度crontab. 如: 复制代码 代码如下: [root@dave ~]# cat /etc/crontab SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # run-parts 01 * * * * root run-parts /etc/cron.hourly

linux中crontab 计划任务

1.作用 使用crontab命令可以修改crontab配置文件,然后该配置由cron公用程序在适当的时 间执行,该命令使用权限是所有用户. 2.格式  代码如下 复制代码 crontab [ -u user ] 文件 crontab [ -u user ] { -l | -r | -e } 3.主要参数 -e:执行文字编辑器来设定时程表,内定的文字编辑器是vi. -r:删除目前的时程表. -l:列出目前的时程表. crontab文件的格式为"M H D m d cmd".其中,M代表分

Linux中crontab命令参数与使用说明

定时任务常用的一个功能,详细如下: 服务的启动和停止 cron服务是linux的内置服务,但它不会开机自动启动.可以用以下命令启动和停止服务: Linux代码 /sbin/service crond start  /sbin/service crond stop  /sbin/service crond restart  /sbin/service crond reload 以上1-4行分别为启动.停止.重启服务和重新加载配置. 要把cron设为在开机的时候自动启动,在 /etc/rc.d/rc

linux使用crontab实现PHP执行计划定时任务_php技巧

首先说说cron,它是一个linux下的定时执行工具.根用户以外的用户可以使用 crontab 工具来配置 cron 任务.所有用户定义的 crontab 都被保存在/var/spool/cron 目录中,并使用创建它们的用户身份来执行.要以某用户身份创建一个 crontab 项目,登录为该用户,然后键入 crontab -e 命令来编辑该用户的 crontab.该文件使用的格式和 /etc/crontab 相同.当对 crontab 所做的改变被保存后,该 crontab 文件就会根据该用户名

linux中crontab命令启动/重启/停止详解

linux 系统则是由 cron (crond) 这个系统服务来控制的.Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的.另 外, 由于使用者自己也可以设置计划任务,所以, Linux 系统也提供了使用者控制计划任务的命令 :crontab 命令. 一.crond简介 crond 是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务 工具,并且会自动启动crond进程,cron

linux中crontab的打core问题分析

接到同事报障, 程序又crash了, 但是找不到core, 而且是应该产生core的, 系统肯定哪里又有bug了. 先从系统层面大概都巡查了一下: 1.  找到别的程序的pid号,然后cat /proc/pid/limits  |grep core,返回Max core file size        0            unlimited            bytes, 有大问题, Soft Limit值居然是0, 继续找原因. 2.  用程序用户执行ulimit -c, 返回un