linux使用cron怎么设置定时任务
发布网友
发布时间:2022-02-26 09:36
我来回答
共3个回答
懂视网
时间:2022-02-26 13:57
产品型号:thinkpad E15
系统版本:centos7
软件版本:crontab 1.5
在linux系统中,执行周期的任务,可以使用crontab。crontab会把你指定的工作或任务,按照你设定的周期一直循环执行下去启动crond服务[root@xuegod63 ~]# systemctl start crond
crontab具体计划任务书写格式:
* * * * * command需要执行的命令
分 时 日 月 周 命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列表示星期0~6(星期日用0或7表示)
第6列要运行的命令
一行对应一个任务,特殊符号的含义:
* 代表取值范围内的数字 (每)
/ 指定时间的间隔频率 */10 0-23/2
- 代表从某个数字到某个数字 8-17
, 分开几个离散的数字 6,10-13,20
创建计划任务
例1:每天凌晨2点1分开始备份数据
[root@xuegod63 spool]# crontab -e #添加计划任务
1 2 * * * tar zcvf /opt/grub2.tar.gz /boot/grub2
[root@xuegod63 ~]# crontab -l #查看
例2:以非root用户添加计划任务。 这里使用bin用户来添加
[root@xuegod63 ~]# crontab -u bin -e
*/10 * * * * echo "aaaaaaa" >> /tmp/bin.txt
系统级别的计划任务
[root@xuegod63 etc]# vim /etc/crontab
1 2 * * * root echo "aaaaaaa" >> /tmp/1.txt
热心网友
时间:2022-02-26 11:05
确定设置crontab的用户,举例用root执行:
crontab -e
进入编辑模式:
00
00 * * * 执行命令
表示每天00点00分执行命令一次
其他时间设置:
每五分钟执行 */5 * * * *
每小时执行 0 * * * *
每天执行 0 0 * * *
每周执行 0 0 * * 0
每月执行 0 0 1 * *
每年执行 0 0 1 1 *
crontab详解:
1.作用
使用crontab命令可以修改crontab配置文件,然后该配置由cron公用程序在适当的时间执行,该命令使用权限是所有用户。
2.格式
crontab [-u user] {-l | -r | -e}
3.主要参数
-e:执行文字编辑器来设定时程表,内空的文字编辑器是vi
-r:删除目前的时程表
-l列出目前的时程表。
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三个环境变量。
使用cron服务,用server crond status查看cron服务状态,如果没有启动则service
crond start启动它,cron服务是一个定时执行的服务,可以通过crontab命令添加或编辑需要定时执行的任务:
crontab –u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
crontab –l //列出某个用户cron服务的详细内容
crontab –r //删除某个用户的cron服务
crontab –e //编辑某个用户的cron服务
crontab filename //以filename作为crontab的任务列表文件并载入
比如说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分自动重新启动。
crontab 文件中的行由6个字段组成,不同字段间用空格或tab键分隔。前5个字段指定命令要运行的时间
分钟(0-59)
小时(0-23)
日期(1-31)
月份(1-12)
星期几(0-6,其中0代表星期日,好像7也代表星期日)
第6个字段是一个要在适当时间执行的字符串。
例子:
#MIN HOUR DAY MONTH DAYOFWEEK COMMAND
#每天早上6点10分
10 6 * * * date
#每两个小时
0 */2
* * * date
#晚上11点到早上8点之间每两个小时,早上8点
0 23-7/2,8 * * * date
#每个月的4号和每个礼拜一到礼拜三的早上11点
0 11 4 * 1-3 date
#1月1日早上4点
0 4 1 1 * 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中,我们应该用:
/etc/rc.d/crond restart
如果让crond在开机时运行,应该改变其运行级别:
chkconfig –level 35
crond on
service crond status查看cron服务状态,如果没有启动则service
crond start启动它,cron服务是一个定时执行的服务,可以通过crontab命令添加或者编辑需要定时执行的任务
热心网友
时间:2022-02-26 12:23
实现linux定时任务有:cron、anacron、at等,这里主要介绍cron服务。
名词解释:
cron是服务名称,crond是后台进程,crontab则是定制好的计划任务表。
软件包安装:
要使用cron服务,先要安装vixie-cron软件包和crontabs软件包,两个软件包作用如下:
vixie-cron软件包是cron的主程序。
crontabs软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序。
查看是否安装了cron软件包: rpm -qa|grep vixie-cron
查看是否安装了crontabs软件包:rpm -qa|grep crontabs
如果没有安装,则执行如下命令安装软件包(软件包必须存在)
rpm -ivh vixie-cron-4.1-54.FC5*
rpm -ivh crontabs*
如果本地没有安装包,在能够连网的情况下可以在线安装
yum install vixie-cron
yum install crontabs