
正文
linux任务计划命令 linux中计划任务
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
linux下怎么来利用crontab实现计划任务非常有用
1、编辑计划任务
crontab -e
编辑计划任务,其实就是编辑一个计划任务的文件,一行一个计划任务。
每行的格式如下:
# m h dom mon dow command
m:minute 分钟 (0-59)h:hour 小时 (0-23)dom:日 (1-31)mon:month 月 (1-12)dow:周 (0-7,其中0和7都代表星期天)command:执行的命令
时间的最小单位是分钟,为了测试出结果,我使用每分钟将当前时间保存到/home/text.txt下来进行测试:
*/1 * * * * date /home/text.txt
等待一分钟,检查下/home/text.txt文件,如果有看到时间就成功了。除了*号和/符号还有其它符号来设定时间:
符号含义*(星号)表示什么时候都可以,(逗号)如果有多个时段,用逗号分开,例如我想每小时的30分和59分执行命令30,59 * * * * date /home/text.txt-(减号)一个时间段内执行任务,例如每小时的3-10分执行命令3-10 * * * *date /home/text.txt/(斜线)每隔多少时间就执行一次命令,例如上例*/1 * * * * date /home/text.txt就是每隔1分钟执行一下命令
2、查看任务列表
crontab -l
这个命令可以查看计划任务列表,其实就是查看任务文件了。
3、删除计划任务
crontab -r
这个命令建议不要用,这个命令会删除系统上的所有计划任务,我曾在服务器上误删除了一次,结果花了不少时间恢复。建议通过crontab -e编辑,直接删除不需要的那一行,就可以了。
友情提示:
执行的命令中的路径建议使用全路径,这样一定不会有问题。例如我上例就是直接使用/home/text.txt;
在ubuntu下,如果没有选择默认的编辑器,则会提示选择编辑器,如下:
ubuntu计划任务选择编辑器
如果需要重新选择编辑器,运行命令select-editor就可以了 。我习惯用vim这个编辑器。
相关问答
Q1: day17-Linux系统定时任务
周期性的执行任务计划的软件,Linux定时任务软件的常用软件crond
cron是定时任务的软件名
crond是服务进程名,真正实现定时任务服务
crontab命令是用来设置定时任务
01.使用定时软件,可以每天每小时按你的需求重复的执行一项工作
02.类似生活中使用的闹钟,可以自动完成操作命令,定时备份系统数据信息。
01.定时任务服务环境准备
a. 启动crond服务
关闭crond服务:systemctl stop crond.service
启动crond服务:systemctl start crond.service
查看crond服务状态:systemctl status crond.service
b.设置开机自启动
开机自启动crond服务:systemctl enable crond.service
开机不启动crond服务:systemctl disable crond.service
02.系统定时任务
a. 系统定时任务周期:
每小时 目录/etc/cron.hourly
每一天 目录/etc/cron.daily
每一周 目录/etc/cron.weekly
每个月 目录/etc/cron.monthly
b. /etc/crontab 系统定时任务的配置文件之一(有记录定时任务格式)
c. 系统定时任务+logrotate命令 完成对日志的切割/日志轮询
/var/log/cron
/var/log/messages
/var/log/secure
02.用户定时任务
用户定时任务查看 crontab -l == cat /var/spool/cron/root
用户定时任务编辑 crontab -e == vim /var/spool/cron/root
定时任务配置文件 /var/spool/cron/root (root文件表示root用户设置的定时任务,文件名是根据用户名设置的)
注:定时任务常见提示信息
a. no crontab for root 当前用户没有编辑定时任务
b. Do you want to retry the same edit 定时任务编辑错误是否继续
03.定时任务编写语法格式:
定时任务常用符号
* 每
/n 每隔
- 连续区间
, 分隔
04.定时任务编写流程
a. 测试定时执行命令(定时任务执行的命令用绝对路径)
b. 编写定时任务信息(先编写注释信息,编写定时任务)
c. 检查定时任务效果:查看定时任务日志(可以临时修改定时任务每分钟执行,最终修改定时任务的时间)
定时任务对%不识别,百分号需要转义\%
尽量使用脚本文件实现
a. 测试定时执行脚本(定时任务执行的脚本利用绝对路径/bin/sh)
b. 编写定时任务信息(先编写注释信息,编写定时任务 在任务信息后边加上/dev/null 21 避免产生很多没用的小文件占用磁盘inode)
c. 检查定时任务效果:查看定时任务日志(可以临时修改定时任务每分钟执行,最终修改定时任务的时间)
定时任务编写要领
(1)为定时任务规则加必要的注释
(2)所有的定时任务尽量都以脚本的形式执行
(3)在执行的shell脚本前加上/bin/sh
(4)在定时任务中命令或脚本的结尾加上 /dev/null 21
(5)在指定用户下执行相关定时任务
(6)生产任务计划程序中不要随意打印输出信息,有输出的想法去掉
(7)定时任务执行的脚本哟啊存放到规范路径下
(8)配置定时任务要规范操作过程,减少出错
(9)定时任务脚本中程序命令及路径尽量用全路径
(10)时间变了%号要用反斜线转义(只有定时任务里时命令时需要)
(11)若脚本中调用了系统环境变量,要重现定义
(12)出错或无法执行,就检查/var/log/cron日志
Q2: linux查看计划任务
crontab -l
列出用户计划任务
-e (edit user's crontab)
-l (list user's crontab)
-r (delete user's crontab)
-i (prompt before deleting user's crontab)
Q3: linux 计划任务
这里,我不给你解释你给出文件中的具体命令的所要执行的任务,而是解释一下Linux计划任务cron配置文件内容的含义,在了解了含义后,你就可以一通百通了。预祝学习顺利。
在Redhat等Linux操作系统中计划任务cron的全局配置文件是/etc/crontab,每个用户的cron配置文件位于/var/spool/cron目录下,文件与用户名同名。这些配置文件可以统称为crontab表。
crontab表中计划任务的书写格式:
分钟 小时 日 月 周 [用户名] 命令
第一个字段:分钟,表示从一个小时的第几分钟来执行,范围:0~59;
第二个字段:小时,表示从一天的第几个小时来执行,范围:0~23;
第三个字段:天,表示从一个月的第几天来执行,范围:1~31;
第四个字段:月,表示从一年的第几个月来执行,范围:1~12;
第五个字段:周,表示从一周的第几天来执行,范围0~6,其中0表示周日;
第六个字段:用户名,也就是要通过哪个用户来执行程序,一般可以省略;
第七个字段:执行的命令和参数。
前五个字段都是时间字段,它们的取值除了数字外还可以有几个特殊的符号,就是“*”、“/”、“-”和“,”。其中,“*”代表所有的取值范围内的数字;“/”代表每的意思,如“*/5”表示每5个单位;“-”代表从某个数字到某个数字;“,”分开几个离散的数字。下面我们举例描述之:
0 6 * * * echo "Good morning." /tmp/test
//每天早上6点整在/tmp/test文件中写入"Good morning. "。
0 */2 * * * echo "Have a break now." /tmp/test
//每隔两个小时在/tmp/test文件中写入"Have a break now."。
0 23-7/2,8 * * * echo "Have a good dream." /tmp/test
//晚上11点到早上7点之间每隔两个小时,和早上8点在/tmp/test文件中写入" Have a good dream ."。
注:第六个字段(用户名)是可以省略的,它定义的是用哪个用户来执行第七个字段描述的指令。比如操作mysql服务器,我们可以定义用mysql用户来操作,这时要写上用户名。不过,对于cron来说意义不是太大,因为每个用户都有自己的cron配置文件。有些程序的启动必须用到root用户,这时我们只要修改root用户的cron配置文件就行了。在每个用户的配置文件中,不必指定用户名,而在全局配置文件中,一般要指定用户名。
在全局性配置文件中,我们来解释一下这些行:
01 * * * * root run-parts /etc/cron.hourly
//表示每个小时的第一分钟,开始执行/etc/cron.hourly目录下的可执行程序或脚本;
02 4 * * * root run-parts /etc/cron.daily
//表示每天的4点2分,开始执行/etc/cron.daily目录下的可执行程序或脚本;
22 4 * * 0 root run-parts /etc/cron.weekly
//表示每周周日的4点22分,开始执行/etc/cron.weekly目录下的可执行程序或脚本;
42 4 1 * * root run-parts /etc/cron.monthly
//表示每月第一天的4点42分,开始执行/etc/cron.monthly目录下的可执行程序或脚本;
上面的每一行都是用来在同一时间批量执行任务的。这些行的命令字段(即第七个字段,第六字段后的所有内容)最前面都含有命令run-parts,run-parts命令的意思是执行下面目录里面的程序和脚本,例如run-parts /etc/cron.hourly意思就是执行/etc/cron.hourly目录下的程序或脚本。
Q4: linux.at 命令怎么用
一次性定时计划任务的at命令的用法!
1.命令格式linux任务计划命令:
at[参数][时间]
2.命令功能:
在一个指定的时间执行一个指定任务linux任务计划命令,只能执行一次,且需要开启atd进程(
ps -ef | grep atd查看, 开启用/etc/init.d/atd start or restart; 开机即启动则需要运行 chkconfig --level 2345 atd on)。
3.命令参数:
-m 当指定的任务被完成之后,将给用户发送邮件,即使没有标准输出
-I atq的别名
-d atrm的别名
-v 显示任务将被执行的时间
-c 打印任务的内容到标准输出
-V 显示版本信息
-q列队 使用指定的列队
-f文件 从指定文件读入任务而不是从标准输入读入
-t时间参数 以时间参数的形式提交要运行的任务 《Linux就该这么学》
使用实例:
实例1:三天后的下午 5 点锺执行 /bin/ls
命令:
at 5pm+3 days
输出:
[root@localhost ~]# at 5pm+3 days
at /bin/ls
at EOT
job 7 at 2013-01-08 17:00
[root@localhost ~]#
说明:
实例2:明天17点钟,输出时间到指定文件内
命令:
at 17:20 tomorrow
输出:
[root@localhost ~]# at 17:20 tomorrow
at date /root/2013.log
at EOT
job 8 at 2013-01-06 17:20
Q5: Linux的shell文件如何来执行命令添加计划任务?
crontab 命令
crontab -e ——编辑当前用户的crontab任务;
crontab -l ——列出当前用户的crontab任务;
crontab -r ——删除当前用户的crontab任务;
crontab书写格式
PS:
星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作;
逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”;
中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”;
正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次;
关于linux任务计划命令和linux中计划任务的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






