linux计划任务规范(如何在Linux中实现计划任务)

本文目录
- 如何在Linux中实现计划任务
- linux中的cron计划任务配置方法[详细]
- linux任务管理器linux任务管理
- Linux任务调度进程crond命令的使用方法和注意事项
- linux计划任务(自动化执行任务的利器)
- 如何设置计划任务
- Linux 中怎么设置计划任务:cron 与 anacron
- linux任务计划执行脚本linux任务计划执行
- linux计划任务管理
- 做linux计划任务的步骤
如何在Linux中实现计划任务
对于系统管理员而言,做系统备份是一个系统管理员非常重要的工作,但是每天重复的工作是一件非常繁琐的工作,那有没有一种方法可以让系统每天每到固定的时间都自己做备份工作呢?答案是有的,那就是计划任务,现在我们就来说说计划任务是怎么一回事,以及怎么去实现它
一般来说计划任务分两种一次性计划任务和周期性计划任务
1, 一次性计划任务:顾名思义一次性计划任务就是在某一个时间点只执行一次的任务,例如像,下周一有约会需要提醒这样只执行一次的任务,
命令at ,batsh实现一次性计划任务
At的用法:at time
例如 at 10:29 就是指在10:29 分执行的任务
执行的结果如下
At 命令的时间格式非常灵活我们可以使用
At now+1min
At 11:54
At date 等在这里不再赘述
Batsh 命令是指在系统空闲时执行的一次性计划任务,比如你有一件不太重要的任务需要执行,当重要的任务执行完才会执行
Batsh 的用法
Batsh 回车 然后输入你要执行的任务
2, 周期性计划任务 :周期性计划任务指的是每隔一段时间就执行一次的任务,比如闹钟每天早上六点叫你起床 命令 cron
(1) 加载cron 模块crond:crond是一种服务一般情况下crond是默认加载的但是也不排除有特出情况
Modprobe crond
(2) crond服务操作 survice crond {start|status|stop|restart}
start 启动crond
status查看crond的运行状态
stop 停止crond服务
restart 重启crond服务
(3) crond的分类 :系统crond和用户crond
系统crond 是系统运行所需要的crond服务 /etc/crontab
用户crond使用户定义的crond服务/var/spool/cron/USERNAME
(4) cron 的书写格式 min hour day month week command
共六段 第一段min 指分钟,第二段hour指小时,第三段day指天,第四段mouth指月份,第五段week指周,第六段command指你要执行的命令例如
10 1 * * 7 ls –l /etc 指的是 每周末的一点10分执行ls –l /etc命令
在字段中的*指在指定的时间域上所有的时间
—对应时间域上的连续取值时间 如1-10 1到10
,表示对应时间域上离散的时间取值如 1,10指的是1和10
/表示在对应时间域上每隔多久进行一次取值
如 1-10 1 * * 7 ls –l /etc指的是每周末的一点1-10分每分钟执行ls –l /etc命令
1,10 1 * * 7 ls –l /etc指的是每周末的一点1分和10分时分别执行ls –l /etc命令
*/10 1 * * 7 ls –l /etc每周末的一点每隔10分钟执行ls –l /etc命令
(5) 说了这么多那到底怎么才能定义自己的计划任务呢?
Crond –e 打开文本然后输入要定义计划任务
如1,10 1 * * 7 ls –l /etc
保存并退出 一个计划任务就做好了
我们来看看怎么定义在每天晚上的凌晨把系统备份
管理员还可以为其他用户定制计划任务 使用 crontab –u username
Crontab –l 可以查看已经定义的计划任务
Crontab –r 移除已将定义的计划任务
(6) Crond 只能在Linux系统启用的时候进行工作,当计划任务所在的时间Linux系统处于不工作状态那我们能不能在Linux启动后的一段时间内将没有做的计划任务给补上呢?档案是肯定的我们使用anacrond命令来是以这一功能
Anacron的命令格式 day min 说明信息 run-parts /etc/cron.daiy
Day 指过去多长时间没有执行过命令 min 指启动后多长时间执行
如 1 65 run-parts /etc/cron.daily 指一天没有运行过时 启动后65分钟后执行任务计划
linux中的cron计划任务配置方法[详细]
1. crontab命令选项
复制代码
代码如下:
#crontab -u -l, -r, -e
-u指定一个用户
-l列出某个用户的任务计划
-r删除某个用户的任务
-e某个用户的任务
2. cron文件语法与写法
可用crontab -e命令来,的是/var/spool/cron下对应用户的cron文件,也可以直接修改/etc/crontab文件。具体格式如下:
复制代码
代码如下:
Minute Hour Day Month Week command
分钟 小时 天 月 星期 命令
0-59 0-23 1-31 1-12 0-6 command
每个字段代表的含义如下:
复制代码
代码如下:
Minute 每个小时的第几分钟执行该任务
Hour 每天的第几个小时执行该任务
Day 每月的第几天执行该任务
Month 每年的第几个月执行该任务
DayOfWeek 每周的第几天执行该任务,0表示周日
Command 指定要执行的程序 、脚本或命令
在这些字段里,除了“Command”是必须指定的字段以外,其它字段皆为可选。对于不指定的字段,要用“*”来填补其位置。
3. 几个特殊符号的含义
“*”代表取值范围内的数字,
“/”代表”每”,
“-”代表从某个数字到某个数字,
“,”分开几个离散的数字
4. 关于cron配置文件/etc/crontab
cron 的主配置文件是 /etc/crontab,它包括下面几行:
复制代码
代码如下:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
前四行是用来配置 cron 任务运行环境的变量:
SHELL 变量的值指定shell 环境(此处默认为 bash shell);PATH 变量定义用来执行命令的程序路径;cron 任务的输出被邮寄给 MAILTO 变量定义的用户名,如果 MAILTO 变量被定义为空白字符串(MAILTO=""),电子邮件就不会被寄出;HOME 变量可以用来设置在执行命令或脚本时使用的主目录。
如在 /etc/crontab 文件中run-parts部分所示,它使用 run-parts 脚本来执行存在于 /etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly 和 /etc/cron.monthly 目录中的脚本,这些脚本被相应地按照预设时间在每小时、每日、每周、或每月执行。这些目录中的文件应该是 shell 脚本,并且具有可执行权限(chmod +x filename)。
如果某 cron 任务需要根据调度来执行,而不是每小时、每日、每周、或每月地执行,它可以被添加到/etc/cron.d目录中。该目录中的所有文件使用和 /etc/crontab 中一样的语法。
每次完某个用户的cron设置后,cron自动在/var/spool/cron下生成一个与此用户同名的文件,此用户的cron信息都记录在这个文件中,这个文件是不可以直接的,只可以用crontab -e 来。cron启动后每过一份钟读一次这个文件,检查是否要执行里面的命令。因此此文件修改后不需要重新启动cron服务。
5. 常见cron示例参考
5 * * * * ls 指定每小时的第5分钟执行一次ls命令
30 5 * * * ls 指定每天的 5:30 执行ls命令
30 7 8 * * ls 指定每月8号的7:30分执行ls命令
30 5 8 6 * ls 指定每年的6月8日5:30执行ls命令
30 6 * * 0 ls 指定每星期日的6:30执行ls命令
30 3 10,20 * * ls 每月10号及20号的3:30执行ls命令
25 8-11 * * * ls 每天8-11点的第25分钟执行ls命令
*/15 * * * * ls 每15分钟执行一次ls命令
30 6 */10 * * ls 每个月中,每隔10天6:30执行一次ls命令
每天7:50以root 身份执行/etc/cron.daily目录中的所有可执行文件
50 7 * * * root run-parts /etc/cron.daily [ 注:run-parts参数表示,执行后面目录中的所有可执行文件
第10、20、30分钟输出到/tmp/cron1.txt:
10,20,30 * * * * echo "第10、20、30分钟输出一次" /tmp/cron1.txt
以用户lzw.me的身份每两小时就运行某个程序:
0 */2 * * * lzw.me /usr/bin/somecommand /dev/null 21
6. 特别提示
A、cron配置文件路径
#vi /etc/crontab
B、重启cron的方法
#/etc/rc.d/init.d/crond restart
Usage: /etc/rc.d/init.d/crond {start|stop|status|reload|restart|condrestart}
C、别忘了将脚本改成可执行
chmod +x filename
linux任务管理器linux任务管理
linux如何改cron任务?
通过命令crontab-e来修改cron任务。
linux账户管理的特点?
linux账户管理特点:
1、同时运行多任务;
2、程序可以包含一个或多个进程,且每个进程可能有一个或多个线程;
3、多用户,因此它可以运行多个用户程序;
4、个人帐户受适当授权的保护;
5、因此账户准确地定义了系统控制权。
任务管理器指令?
Windows的任务管理器功能,这个命令就是top,用户可以使用top来对进程排序,结束进程等.
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,默认5秒刷新一下进程列表,所以类似于Windows的任务管理器。
linux定时任务原理?
Linux定时任务实现原理
Linux系统定时任务(crond)一:定义crond是Linux系统中用来定期执行命令或指定程序任务的一种服务或软件1、linux系统自身定期执行的任务(轮询系统日志、备份数据等)2、用户执行的任务(定时更新同步时间、网站数据备份等)二:命令语法定时任务的命令是crontab,其守护...
linux安排计划怎么取消?
按照下面的操作试试:(假设你是以root用户登录)1.crontab-e这条命令可以直接打开root用户的计划任务文件,如果是其他用户,比如用户zs,那么命令为crontab-e-uzs2.找到该文件中和关机或者重启命令有关的关键字,比如halt,shutdown,reboot,找到之后就直接把这行删除,保存退出。3.执行servicecrondrestart,重启计划任务服务,或者,直接手动重启系统。如果你是想彻底关闭计划任务,可以按照以下方法试试:(以root用户登录系统)1.crontab-r-u用户名删除这个用户名下的计划任务1.servicecrondstop关闭当前的计划任务服务2.chkconfig--level35crondoff下次重启系统后,不让计划任务服务自动开启。希望你能解决。
Linux任务调度进程crond命令的使用方法和注意事项
一、crond简介
概念
crond的概念和crontab是不可分割的。crontab是一个命令,常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。该词来源于希腊语 chronos(χρ?νο?),原意是时间。而crond正是它的守护进程。
crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。
Linux下的任务调度分为两类,系统任务调度和用户任务调度。
l 系统任务调度:系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理等。在/etc目录下有一个crontab文件,这个就是系统任务调度的配置文件。
/etc/crontab文件包括下面几行:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly02 4 * * * root run-parts /etc/cron.daily22 4 * * 0 root run-parts /etc/cron.weekly42 4 1 * * root run-parts /etc/cron.monthly前四行是用来配置crond任务运行的环境变量,第一行SHELL变量指定了系统要使用哪个shell,这里是bash,第二行PATH变量指定了系统执行命令的路径,第三行MAILTO变量指定了crond的任务执行信息将通过电子邮件发送给root用户,如果MAILTO变量的值为空,则表示不发送任务执行信息给用户,第四行的HOME变量指定了在执行命令或者脚本时使用的主目录。第六至九行表示的含义将在下个小节详细讲述。这里不在多说。
l 用户任务调度:用户定期要执行的工作,比如用户数据备份、定时邮件提醒等。用户可以使用 crontab 工具来定制自己的计划任务。所有用户定义的crontab 文件都被保存在 /var/spool/cron目录中。其文件名与用户名一致。
二、crontab工具的使用
(1)crontab的使用格式
crontab常用的使用格式有如下两种:
crontab
crontab
选项含义如下:
l -u user:用来设定某个用户的crontab服务,例如,“-u ixdba”表示设定ixdba用户的crontab服务,此参数一般有root用户来运行。
l file:file是命令文件的名字,表示将file做为crontab的任务列表文件并载入crontab。如果在命令行中没有指定这个文件,crontab命令将接受标准输入(键盘)上键入的命令,并将它们载入crontab。
l -e:某个用户的crontab文件内容。如果不指定用户,则表示当前用户的crontab文件。
l -l:显示某个用户的crontab文件内容,如果不指定用户,则表示显示当前用户的crontab文件内容。
l -r:从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文件。
l -i:在删除用户的crontab文件时给确认提示。
(2)crontab文件的含义
用户所建立的crontab文件中,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,格式如下:
minute hour day month week command其中:
l minute: 表示分钟,可以是从0到59之间的任何整数。
l hour:表示小时,可以是从0到23之间的任何整数。
l day:表示日期,可以是从1到31之间的任何整数。
l month:表示月份,可以是从1到12之间的任何整数。
l week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
l command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。
在以上各个字段中,还可以使用以下特殊字符:
l 星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
l 逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”
l 中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
l 正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。
(3)crontab文件举例
0 */3 * * * /usr/local/apache2/apachectl restart表示每隔3个小时重启apache服务一次。
30 3 * * 6 /webdata/bin/backup.sh
表示每周六的3点30分执行/webdata/bin/backup.sh脚本的操作。
0 0 1,20 * * fsck /dev/sdb8
表示每个月的1号和20号检查/dev/sdb8磁盘设备。
10 5 */5 * * echo ""/usr/local/apache2/log/access_log表示每个月的5号、10号、15号、20号、25号、30号的5点10分执行清理apache日志操作。
三、 使用crontab工具的注意事项
(1)注意环境变量问题
有时我们创建了一个crontab,但是这个任务却无法自动执行,而手动执行这个任务却没有问题,这种情况一般是由于在crontab文件中没有配置环境变量引起的。
在crontab文件中定义多个调度任务时,需要特别注意的一个问题就是环境变量的设置,因为我们手动执行某个任务时,是在当前shell环境下进行的,程序当然能找到环境变量,而系统自动执行任务调度时,是不会加载任何环境变量的,因此,就需要在crontab文件中指定任务运行所需的所有环境变量,这样,系统执行任务调度时就没有问题了。
(2)注意清理系统用户的邮件日志
每条任务调度执行完毕,系统都会将任务输出信息通过电子邮件的形式发送给当前系统用户,这样日积月累,日志信息会非常大,可能会影响系统的正常运行,因此,将每条任务进行重定向处理非常重要。
例如,可以在crontab文件中设置如下形式,忽略日志输出:
0 */3 * * * /usr/local/apache2/apachectl restart /dev/null 21“/dev/null 21”表示先将标准输出重定向到/dev/null,然后将标准错误重定向到标准输出,由于标准输出已经重定向到了/dev/null,因此标准错误也会重定向到/dev/null,这样日志输出问题就解决了。
(3)系统级任务调度与用户级任务调度
系统级任务调度主要完成系统的一些维护操作,用户级任务调度主要完成用户自定义的一些任务,可以将用户级任务调度放到系统级任务调度来完成(不建议这么做),但是反过来却不行,root用户的任务调度操作可以通过“crontab –uroot –e”来设置,也可以将调度任务直接写入/etc/crontab文件,需要注意的是,如果要定义一个定时重启系统的任务,就必须将任务放到/etc/crontab文件,即使在root用户下创建一个定时重启系统的任务也是无效的。
linux计划任务(自动化执行任务的利器)
Linux计划任务是一种自动化执行任务的工具,它可以在指定的时间间隔内执行特定的任务,例如备份文件、清理日志、发送邮件等。Linux计划任务是Linux系统中非常重要的工具之一,它可以帮助我们自动化完成许多重复性的工作,提高工作效率。
Linux计划任务的使用方法
在Linux系统中,我们可以使用crontab命令来管理计划任务。crontab命令可以让我们创建、、查看和删除计划任务。下面是一些常用的crontab命令:
-crontab-e:当前用户的计划任务;
-crontab-l:列出当前用户的计划任务;
-crontab-r:删除当前用户的所有计划任务。
在计划任务时,我们需要使用特定的语法来指定任务的执行时间和要执行的命令。下面是一个示例:
```
00***/usr/bin/backup.sh
```
这个示例表示在每天的0点0分执行/usr/bin/backup.sh脚本。其中,星号(*)表示任意值,可以用来表示所有的时间单位。例如,星号在小时的位置表示每小时都会执行该任务。除了星号之外,我们还可以使用数字、逗号、减号等符号来指定具体的时间。例如:
-0:表示整点;
-*/5:表示每隔5个时间单位执行一次;
-1,3,5:表示在1、3、5这三个时间单位执行一次;
-1-5:表示在1到5这个时间段内每个时间单位都执行一次。
实际应用案例
下面是一个实际应用案例,我们将使用Linux计划任务来定时备份MySQL数据库。
首先,我们需要创建一个备份脚本,例如backup_mysql.sh:
```
!/bin/bash
DATE=`date+%Y%m%d`
mysqldump-uroot-p123456--all-databases》/var/backup/mysql_$DATE.sql
```
这个脚本会使用mysqldump命令备份所有的MySQL数据库,并将备份文件保存到/var/backup目录下,文件名为mysql_日期.sql。
接下来,我们使用crontab命令来创建一个计划任务,每天凌晨1点执行备份脚本:
```
crontab-e
```
在模式下,添加以下内容:
```
01***/bin/bash/usr/local/bin/backup_mysql.sh
```
保存并退出模式。现在,我们已经成功创建了一个每天凌晨1点执行备份脚本的计划任务。
如何设置计划任务
如何设置计划任务?
计划任务是为了让你的操作系统自动执行一些重复性的任务或者定期执行一些需要定时完成的任务,可以是备份数据、检查系统安全性、更新软件等。在Windows和Linux等操作系统中,设置计划任务可以帮助你提高工作效率和保证任务的准确性。那么如何设置计划任务呢?下面是一些常见的方法。
在Windows操作系统中,你可以采用“任务计划程序”来设置计划任务。以下是具体的步骤:
1.在“开始”菜单中找到“控制面板”,进入“系统和安全”一栏中的“管理工具”。
2.点击“任务计划程序”标签,进入任务计划程序主界面。
3.点击“创建任务”链接,打开“新建任务”对话框。在该对话框中,你可以设定任务名称、运行时间、任务触发器、操作等。可在该界面进一步详细设置计划任务的参数。
4.对于已有的任务,你可以修改或者删除它们。在任务计划程序主界面中,选择对应的任务,右键选择相应的选项。
在Linux操作系统中,你可以利用Crontab命令或Cron服务来设置计划任务。以下是一个示例:
1.编写一个shell脚本(例如test.sh),并设置好脚本的路径。
2.打开终端,打开Crontab界面。在终端中输入“crontab-e”命令。
3.在界面中,输入“*****/bin/sh/usr/local/bin/test.sh”文本,表示设置该脚本每隔一分钟执行一次。
4.保存文件并退出,通过命令“servicecronreload”重启Cron服务。任务便会在设定的时间段内执行。
以上是两种操作系统中设置计划任务的方法,根据具体情况选用适合的方式。无论何种方法设置计划任务,都需要注意任务运行时间,确保执行过程中不会对计算机造成影响。同时,对任务的运行情况进行监测是必要的,以确保任务按时完成且运行正确。
Linux 中怎么设置计划任务:cron 与 anacron
作为系统管理员,为了系统的安全我们希望服务器定期自动执行一些操作,比如每天自动备份系统文件,定期备份数据库,以及在未来某天让系统自动关机…………Linux就该这么学,linux下有很多命令能帮我们在未来某个特定时间让系统实现上述的操作,以及让系统定期执行某些操作。
在本篇中,我们会解释 cron 和 anacron,并向你展示如何在 Linux 中设置 anacron。我们也会比较这两个工具。
cron 在 Linux 设置时间任务
第一: cron 介绍 1、cron - 是一个用于运行计划任务如系统备份、更新等的守护进程。它适合在那些 24X7 不间断运行的机器如服务器上运行的计划任务。 2、命令/脚本被写在 cron 任务脚本中,它是在crontab文件中被安排的。系统默认的cromtab文件是/etc/crontab,但是每个用户也可以创建自己的cromtab文件来在特定时间运行用户定义的命令。
第二 : cron 如何设置 1、命令合使用方法 #crontab -u -l, -r, -e -u指定一个用户 -l列出某个用户的任务计划 -r删除某个用户的任务 -e某个用户的任务 2、创建一个定时任务 要创建一份个人crontab文件,只要输入: # crontab -e 30 3 * * * /bin/tar -jcf /tmp/backup.tar.gz /etc // 每天早上3点,备份/etc目录 # crontab -l
在 Linux 中设置 anacron
第一:anacron介绍 1、anacron 用于以天为单位的频率运行命令。它的工作与 cron 稍有不同,它假设机器不会一直开机。 2、cron 也适合在那些不会 24X7 运行如笔记本以及桌面电脑的机器上运行每日、每周以及每月的计划任务(LCTT 译注:不适合按小时、分钟执行任务)。 3、假设你有一个计划任务(比如备份脚本)要使用 cron 在每天半夜运行,也许你以及睡着,那时你的桌面/笔记本电脑已经关机。你的备份脚本就不会被运行。 4、如果你使用 anacron,你可以确保在你下次开启桌面/笔记本电脑的时候,备份脚本会被执行。
第二 :anacron 如何在 Linux 设置 1、anacron命令方法 anacron 任务被列在/etc/anacrontab中,任务可以使用下面的格式(anacron 文件中的注释必须以#号开始)安排。 #period delay job-identifier command ************************************************* 1.1 : period - 这是任务的频率,以天来指定,或者是 @daily、@weekly、@monthly代表每天、每周、每月一次。 你也可以使用数字:1- 每天、7- 每周、30- 每月,或者N- 几天。 1.2: delay - 这是在执行一个任务前等待的分钟数。 1.3: job-id - 这是写在日志文件中任务的独特名字。 1.4: command- 这是要执行的命令或 shell 脚本。2 、如何看示列文件 要浏览示例文件,输入: $ ls -l /var/spool/anacron/ total 12 -rw------- 1 root root 9 Jun 1 10:25 cron.daily -rw------- 1 root root 9 May 27 11:01 cron.monthly -rw------- 1 root root 9 May 30 10:28 cron.weekly anacron 会检查任务是否已经在period字段指定的时间被被执行了。如果没有,则在等待delay字段中指定的分钟数后,执行command字段中指定的命令。 一旦任务被执行了,它会使用job-id(时间戳文件名)字段中指定的名称将日期记录在/var/spool/anacron目录中的时间戳文件中。 3、 现在让我们看一个例子。 这个会每天运行/home/aaronkilik/bin/backup.sh脚本: @daily 10 example.daily /bin/bash /home/aaronkilik/bin/backup.sh 当机器在backup.sh期望被运行时是关机的,anacron 会在机器开机十分钟之后运行它,而不用再等待 7 天。
第三 : anacrontab 文件的重要变量 START_HOURS_RANGE - 这个设置任务开始运行的时间范围(也就是任务只在这几个小时内运行)。 RANDOM_DELAY - 这定义添加到用户定义的任务延迟的最大随机延迟(默认为 45)。 这是你的 anacrontab 文件可能看上去的样子。 Anacron –/etc/anacrontab:
cron 以及 anacron 的比较
cron 和 anacron 主要的区别在于 cron 能在那些持续运行的机器上有效地运行,而 anacron 是针对那些会在一天内或者一周内会关机的机器。
linux任务计划执行脚本linux任务计划执行
linux中at与Wall命令用法?
1.at命令是一次性定时计划任务,at的守护进程atd会以后台模式运行,检查作业队列来运行作业。atd守护进程会检查系统上的一个特殊目录来获取at命令的提交的作业,默认情况下,atd守护进程每60秒检查一次目录,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行此作业。
注意:at命令是一次性定时计划任务,执行完一个任务后不再执行此任务了。
at命令格式
at
Ctrl+D结束at命令的输入
2.wall是一个命令行实用程序,可在所有已登录用户的终端上显示一条消息,这些消息可以在终端上键入,也可以在文件内容中键入。wall代表全部写入,使用write命令仅向特定用户发送消息。
通常,系统管理员发送消息以宣布维护,并要求用户注销并关闭所有打开的程序。在终端打开的情况下,消息将显示给所有登录用户。使用没有终端打开的图形桌面环境的用户将看不到该消息。每个用户都可以使用mesg实用程序控制对其终端的写访问。当超级用户调用wall命令时,无论其mesg设置如何,所有用户都会收到消息。
Wall命令的语法及发送消息的示例
wall命令的语法如下:
wall
linux计划任务如何实现延时执行脚本?
两个方法:
1)crontab中的时间设定最小可以到分钟,如果你的延时是分钟级别的,直接放大crontab中的分钟设定即可。
2)修改脚本,在脚本开头(当然要在shell声明语句如#!/bin/bash之后)加usleep(微秒级)或sleep命令(秒级),也可以实现延时。
linux计划任务管理
什么是计划任务,计划任务类似于我们平时生活中的闹钟。
在Linux系统的计划任务服务crond可以满足周期性执行任务的需求。
crond进程每分钟会处理一次计划任务, 计划任务主要是做一些周期性的任务目前最主要的用途是定时备份数据
Schedule one-time tasks with at. 一次性调度执行 at
Schedule recurring jobs with cron. 循环调度执行 cron
Schedule recurring system jobs. 所有计划任务执行中的输出都会以邮件的方式发送给指定用户, 除非重定向
// 循环调度执行cron 进程每分钟会处理一次计划任务
# systemctl status crond
# ps aux |grep crond
root 1201 0.0 0.0 126264 1640 ? Ss 11 : 15 0 : 00 /usr/sbin/crond -n
计划任务分为以下两种情况:
系统级别的定时任务:
清理系统缓存
临时文件清理
系统信息采集
日志文件切割
用户级别的定时任务:
定时同步互联网时间
定时备份系统配置文件
定时备份数据库文件
文件 说明 /etc/crontab / /crontab配置文件 /etc/cron.deny / /该文件中所列用户不允许使用crontab命令 /var/spool/cron/ * // 所有用户定时文件都存放此目录,文件以用户名命名 /var/log/cron / /定时任务执行后的日志文件,可用来回溯
crond任务管理
参数 含义 指定示例
# crontab --help -e crontab文件内容 crontab -e-l 查看crontab文件内容 crontab -l
-r 删除crontab文件内容 crontab -r
-u 管理其他用户的计划任务 crontab -u wangqing -l
注意: crontab {-l -e}实际上就是在操作/var/spool/cron/username
//如何进行计划任务的备份?
crond时间含义
# Example of job definition:# .---------------- minute (0 - 59) //分钟 # | .------------- hour (0 - 23) //小时 # | | .---------- day of month (1 - 31) //日期 # | | | .------- month (1 - 12) OR jan,feb,mar,apr //月份 # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat //星期 # | | | | |# * * * * * command to be executed
// * 表示任意的(分、时、日、月、周)时间都执行// - 表示一个时间范围段, 如5-7点// , 表示分隔时段, 如6,0,4表示周六、日、四// */n 表示每隔n单位时间, 如*/10 每10分钟
crond编写示例
00 02 * * * command
00 02 1 * * command
00 02 14 2 * command
00 02 * * 7 command
00 02 * 6 5 command
00 02 14 * 7 command
00 02 14 2 7 command
00 02 * * * command* 02 * * * command* * * * * command* * 14 2 * command*/5 * * * * command
00 02 * 1,5,8 * command
00 02 1-8 * * command
crond书写规范
//1.为计划任务增加必要的注释
# crontab -l
##time sync
* /5 * * * * /u sr/sbin/ntpdate time1.aliyun.com &》 /dev/ null
//2.规范计划任务执行脚本存放的路径/scripts/
# crontab -l
##backup www to /backup 30 01 * * * /bin/ sh /scripts/www_backup.sh &》 /dev/ null
//3.执行shell脚本任务前加/bin/sh, 脚本结尾加&》/dev/null//调试好后应屏蔽debug输出信息,避免产生系统垃圾占用过多inode, 如需输出日志, 可重定向至日志文件
# crontab -l
####backup www to /backup 30 01 * * * /bin/ sh /scripts/www_backup.sh &》 /tmp/ www_backup.log
# crontab -e
#每天凌晨切割nginx日志 05 00 * * * /bin/bash -x /scripts/cut_nginx.sh &》 /scripts/ log /nginx. log
#每天5点备份数据库 00 05 * * * /bin/bash -x /scripts/dump_sql.sh &》/scripts/ log /mysql. log
//注意: 1. 我们所有的crond服务是运行的程序。而crontab命令用户用来设置定时规则的命令。 2. crond服务是企业生产工作中常用的重要服务,at很少使用,可以忽略。 3. 几乎每个服务器都会用到crond服务。
建议: 将需要定期执行的任务写入脚本中, 建立/scripts目录统一存放脚本, 脚本中命令必须使用绝对路径,手动执行脚本检测输出是否正常, 然后将脚本加入计划任务测试, 测试后无问题将脚本输出写入对应的日志文件中即可。
计划任务添加步骤:
作业:
a. 00 13,20 * 1-5 * backup.sh
b. 0 13,20 1,5 * * backup.sh
c. * 13,20 * * 1-5 backup.sh
d. 00 13,20 * * 1-5 backup.sh
说明以上答案每一行是什么含义
***隐藏网址***
3.新建/backup目录,每周一下午5:50将/backup目录下的所有文件打包成 backup.tar.gz
4.写一个定时任务,每天0点5分把/var/log/nginx下7天前的文件转移到/backup/2018_xx_xx的目录中
5.系统脚本/scripts/which.sh,如何定时每隔7分钟执行一次?
6.如何不小心删除了/var/spool/cron/root文件,该如何恢复。
***隐藏网址***
做linux计划任务的步骤
一次性计划任务的安排: at :安排作业在某一时刻执行一次(一般都是用它)
batch:安排作业在系统负载不重时执行一次
第一步: #service atd start 开启一次性计划任务 at 时间
1、绝对的计时方法 midnightnoonteatimeHH:MMHH:mm 星期HH:MM mm/dd/yy 2、相对的计时方法
复制代码
代码如下:
now + n minutesnow + n hours
now + n day
指定今天下午5:30执行某个命令(假设现在时间中午12:30,2009/9/16)at5:30pmat17:30at17:30todayatnow+5hoursatnow+300minutesat17:3016.9.2009at17:309/16/2009
指定的时间都是未到的我们也可以把我们要执行的命令写到一个文件你如#vione.txt在文件中/bin/echo"#############"a.txt#at-fone.txt10:30
at-f文件时间点atone.txt时间点
在某个时间执行某个程序(命令),一定要使用命令的绝对路径
复制代码
代码如下:
at10:56/bin/cp/root/*/home/bin/echo"11111111"/root/one.txt
ctrl+d退出at-l查看或atqat-d或atrm删除计划任务
at的执行结果和配置文件
at的结果通过邮件寄给提交这个命令的用户
at的配置文件:限制哪些用户可以使用at命令/etc/at.allow如果这个文件存在,那么列在此文件中的用户才可以使用at命令,如果这个文件不存在则查/etc/at.deny
/etc/at.deny如果这个文件存在,则在文件中列出的用户都不能使用at命令
如果两个文件都不存在,则只有root用户可以使用at命令。如果两个文件都存在,而且均为空,则所有用户都可以使用at命令。
周期性计划任务的:crond#servicecrondstart开启周期性计划任务
crond进程搜索crond文件并载入内存
crontab文件即/var/spool/cron/目录下以用户名命名的文件
crond进程启动以后,他首先检查是否用户设置了crontab文件,如果没有转入“休眠”状态释放系统资源crond进程每分钟醒来一次,
查看crontab文件决定当前是否有需要执行的命令。命令执行结束后,任何输出丢将作为邮件发送给crontab的所有者。
#crontab-e周期任务
#crontab-l查看计划任务
#crontab-r删除当前的计划任务
计划任务书写的格式:
复制代码
代码如下:
分时天月星期/pp(0ro7issun)/pp*/23,5,71-5
每隔两分钟三点,五点,七点周一到周五
这些项都不能够为空,必须填写
如果以后不需要指定其中几项,可以用通配符“*”表示
每个时间段都可以指定多个值,它们可以用逗号间隔,5-6*/3
命令应该给出绝对路径
用户必须具有运行crontab的权限
复制代码
代码如下:
/etc/cron.allow/etc/cron.deny
作用与at的相似










