linux定时任务不执行(shell每天定时执行脚本)
今天给各位分享linux定时任务不执行的知识,其中也会对shell每天定时执行脚本进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
linux的cron不能自动执行的原因是什么
你直接把/etc/crontab SHELL改成:
SHELL=/bin/bash
1、添加用户任务可以通过crontab-e进行编辑
2、0 22*** sh-l-c'backup perform-t my_backup'
下边是我以前收集整理的发给你:
1、创建调度文件
2、安装 crontab文件名被安装到/var/spool/cron
3、crontab-l查看
Crontab是一个很方便的在unix/linux系统上定时(循环)执行某个任务的程序
使用cron服务,用 service crond status查看 cron服务状态,如果没有启动则 service crond start启动它,
cron服务是一个定时执行的服务,可以通过crontab命令添加或者编辑需要定时执行的任务:
crontab-u//设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
crontab-l//列出某个用户cron服务的详细内容
crontab-r//删除没个用户的cron服务
crontab-e//编辑某个用户的cron服务
比如说root查看自己的cron设置:crontab-u root-l
再例如,root想删除fred的cron设置:crontab-u fred-r
在编辑cron服务时,编辑的内容有一些格式和约定,输入:crontab-u root-e
进入vi编辑模式,编辑的内容一定要符合下面的格式:*/1**** ls>>/tmp/ls.txt
编辑/etc/crontab文件,在末尾加上一行: 30 5*** root init 6这样就将系统配置为了每天早上5点30自动重新启动。
需要将crond设置为系统启动后自动启动的服务,可以在/etc/rc.d/rc.local中,在末尾加上
service crond start
如果还需要在系统启动十加载其他服务,可以继续加上其他服务的启动命令。
比如: service mysqld start
基本用法:
1. crontab-l
列出当前的crontab任务
2. crontab-d
删除当前的crontab任务
3. crontab-e(solaris5.8上面是 crontab-r)
编辑一个crontab任务,ctrl_D结束
4. crontab filename
以filename做为crontab的任务列表文件并载入
crontab file的格式:
crontab文件中的行由 6个字段组成,不同字段间用空格或 tab键分隔。前 5个字段指定命令要运行的时间
分钟(0-59)
小时(0-23)
日期(1-31)
月份(1-12)
星期几(0-6,其中 0代表星期日)
第 6个字段是一个要在适当时间执行的字符串
例子:
#MIN HOUR DAY MONTH DAYOFWEEK COMMAND
#每天早上6点10分
10 6*** date
#每两个小时
0*/2*** date(solaris 5.8似乎不支持此种写法)
#晚上11点到早上8点之间每两个小时,早上8点
0 23-7/2,8*** date
#每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点
0 11 4* mon-wed date
#1月份日早上4点
0 4 1 jan* date
补充:在使用crontab的时候,要特别注意的是运行脚本中能够访问到的环境变量和当前测试环境中的环境变量未必一致,一个比较保险的做法是在运行的脚本程序中自行设置环境变量(export)
(1)先建一个文件crond.txt如下,每天早上5点36分重新启动
36 5*** reboot
(2)上传到/opt目录
(3)运行命令
crontab/opt/crond.txt
crontab-l
让配置文件生效:如果让配置文件生效,还得重新启动cron,切记,既然每个用户下的cron配置文件修改后。也要重新启动cron服务器。
在Fedora和Redhat中,我们应该用;
[root@localhost~]#/etc/init.d/crond restart
如果让crond在开机时运行,应该改变其运行级别;
[root@localhost~]# chkconfig--levels 35 crond on
service crond status查看 cron服务状态,如果没有启动则 service crond start启动它, cron服务是一个定时执行的服务,可以通过crontab命令添加或者编辑需要定时执行的任务
Crontab文件的每一行由六个域(minutes、hours、day of month、month、day of week、 command)组成,域之间用空格或Tab分开,其中:
minutes:分钟域,值的范围是0到59
hours:小时域,值的范围是0到23
day of month:日期,值的范围是1到31
month:月份,值的范围是1到12
day of week:星期,值的范围是0到6,星期日值为0
command:所要运行的命令
如果一个域是*,表明命令可以在该域所有可能的取值范围内执行。
如果一个域是由连字符隔开的两个数字,表明命令可以在两个数字之间的范围内执行(包括两个数字本身)。
如果一个域是由逗号隔开的一系列值组成的,表明命令可以在这些值组成的范围内执行。
如果日期域和星期域都有值,则这两个域都有效。
编写一个文件,用以启动自动备份进程。
cd/opt
touch reboot.txt
在reboot.txt中添加一下内容:
0 4*** reboot
crontab/opt/reboot.txt
用crontab-e编辑定时操作,例如加入下行命令:
用crontab-l命令来查看
注意:需要启动服务(添加在rc.local中)
重启crond任务
/etc/init.d/cron restart(ubuntu下)
第一种在Fedora或Redhat等以RPM包管理的系统中;
[root@localhost~]#/etc/init.d/crond start
[root@localhost~]#/etc/init.d/crond stop
[root@localhost~]#/etc/init.d/crond restart
/etc/rc.d/init.d/crond restart
命令简介
crontab-操作每个用户的守护程序和该执行的时间表。
部分参数说明
crontab file [-u user]-用指定的文件替代目前的crontab。
crontab-[-u user]-用标准输入替代目前的crontab.
crontab-1[user]-列出用户目前的crontab.
crontab-e[user]-编辑用户目前的crontab.
crontab-d[user]-删除用户目前的crontab.
crontab-c dir-指定crontab的目录。
crontab文件的格式:M H D m d cmd.
M:分钟(0-59)。
H:小时(0-23)。
D:天(1-31)。
m:月(1-12)。
d:一星期内的天(0~6,0为星期天)。
cmd要运行的程序,程序被送入sh执行,这个shell只有USER,HOME,SHELL这三个环境变量。
下面是一个例子文件:
#MIN HOUR DAY MONTH DAYOFWEEK COMMAND
#每天早上6点
106*** date
#每两个小时
0*/2*** date
#晚上11点到早上8点之间每两个小时,早上部点
0 23-7/2,8*** date
#每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点
0 11 4* mon-wed date
#1月份日早上4点
0 4 1 jan* date
范例
lark:~>crontab-1列出用户目前的crontab.
#MIN HOUR DAY MONTH DAYOFWEEK COMMAND
10 6*** date
0*/2*** date
0 23-7/2,8*** date
linux的定时重启的具体命令 非常感谢。。。
LINUX服务器定时重启的具体命令如下:
crontab-e
0 1***/sbin/reboot( 0 1***表示每天凌晨一点重启.)
0 1** 1/sbin/reboot(0 1** 1表示每周一凌晨一点重启
30 2***/home/bin/oraclebackup.sh(备份数据库和站点目录)
30 3***/home/bin/cmsbackup.sh(备份数据库和站点目录)
[root@localhost~]#/etc/init.d/crond restart
[root@localhost~]# chkconfig--levels 35 crond on(重启crond服务)
扩展资料:
在/etc目录下有一个crontab文件,这个就是系统任务调度的配置文件。用户所建立的crontab文件中,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,格式如下:
minute hour day month week command
其中:
1.minute:表示分钟,可以是从0到59之间的任何整数。
2.hour:表示小时,可以是从0到23之间的任何整数。
3.day:表示日期,可以是从1到31之间的任何整数。
4.month:表示月份,可以是从1到12之间的任何整数。
5.week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
6.command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。
linux定时任务
linux定时任务使用crontab命令
crontab命令说明
crontab命令被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。
语法
crontab(选项)(参数)
选项
-e:编辑该用户的计时器设置;
-l:列出该用户的计时器设置;
-r:删除该用户的计时器设置;
-u<用户名称>:指定要设定计时器的用户名称。
参数
crontab文件:指定包含待执行任务的crontab文件。
知识扩展
Linux下的任务调度分为两类:系统任务调度和用户任务调度。
系统任务调度:系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理等。在/etc目录下有一个crontab文件,这个就是系统任务调度的配置文件。
/etc/crontab文件包括下面几行:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=""HOME=/
# run-parts
51**** root run-parts/etc/cron.hourly
24 7*** root run-parts/etc/cron.daily
22 4** 0 root run-parts/etc/cron.weekly
42 4 1** root run-parts/etc/cron.monthly
前四行是用来配置crond任务运行的环境变量,第一行SHELL变量指定了系统要使用哪个shell,这里是bash,第二行PATH变量指定了系统执行命令的路径,第三行MAILTO变量指定了crond的任务执行信息将通过电子邮件发送给root用户,如果MAILTO变量的值为空,则表示不发送任务执行信息给用户,第四行的HOME变量指定了在执行命令或者脚本时使用的主目录。
用户任务调度:用户定期要执行的工作,比如用户数据备份、定时邮件提醒等。用户可以使用 crontab工具来定制自己的计划任务。所有用户定义的crontab文件都被保存在/var/spool/cron目录中。其文件名与用户名一致,使用者权限文件如下:
/etc/cron.deny该文件中所列用户不允许使用crontab命令
/etc/cron.allow该文件中所列用户允许使用crontab命令
/var/spool/cron/所有用户crontab文件存放的目录,以用户名命名
crontab文件的含义:用户所建立的crontab文件中,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,格式如下:
minute hour day month week command顺序:分时日月周
其中:
minute:表示分钟,可以是从0到59之间的任何整数。
hour:表示小时,可以是从0到23之间的任何整数。
day:表示日期,可以是从1到31之间的任何整数。
month:表示月份,可以是从1到12之间的任何整数。
week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。
在以上各个字段中,还可以使用以下特殊字符:
星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”
中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。
crond服务
/sbin/service crond start//启动服务
/sbin/service crond stop//关闭服务
/sbin/service crond restart//重启服务
/sbin/service crond reload//重新载入配置
查看crontab服务状态:
service crond status
手动启动crontab服务:
service crond start
查看crontab服务是否已设置为开机启动,执行命令:
ntsysv
加入开机自动启动:
chkconfig–level 35 crond on