计划任务命令linux,计划任务命令 每天
Linux系统下如何设置计划任务?
设置如下:
成都创新互联服务项目包括远安网站建设、远安网站制作、远安网页制作以及远安网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,远安网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到远安省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
1)通过命令【crontab -e】编写计划任务
2)按【i】键编写,最后按【esc】【:wq】保存并退出
Linux系统的知识你可以看黑马程序员视频库的Linux教程,零基础都能学的。
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)
linux计划任务crontab配置文件中的最后一个星星代表
linux计划任务crontab配置文件中的最后一个星星代表所有可能的值
crontab命令用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。
cron 系统调度进程。 可以使用它在每天的非高峰负荷时间段运行作业,或在一周或一月中的不同时段运行。cron是系统主要的调度进程,可以在无需人工干预的情况下运行作业。crontab命令允许用户提交、编辑或删除相应的作业。每一个用户都可以有一个crontab文件来保存调度信息。系统管理员可以通过cron.deny 和 cron.allow 这两个文件来禁止或允许用户拥有自己的crontab文件。
linux计划任务管理
什么是计划任务,计划任务类似于我们平时生活中的闹钟。
在Linux系统的计划任务服务crond可以满足周期性执行任务的需求。
crond进程每分钟会处理一次计划任务, 计划任务主要是做一些周期性的任务目前最主要的用途是定时备份数据
Schedule one-time tasks with at. 一次性调度执行 at
Schedule recurring jobs with cron. 循环调度执行 cron
Schedule recurring system jobs. 所有计划任务执行中的输出都会以邮件的方式发送给指定用户, 除非重定向
// 循环调度执行cron 进程每分钟会处理一次计划任务
[root@wangqing ~] # systemctl status crond
[root@wangqing ~] # 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任务管理
参数 含义 指定示例
[root@wangqing ~] # 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.为计划任务增加必要的注释
[root@wangqing ~]# crontab -l
##time sync
* /5 * * * * /u sr/sbin/ntpdate time1.aliyun.com /dev/ null
//2.规范计划任务执行脚本存放的路径/scripts/
[root@wangqing ~]# crontab -l
##backup www to /backup 30 01 * * * /bin/ sh /scripts/www_backup.sh /dev/ null
//3.执行shell脚本任务前加/bin/sh, 脚本结尾加/dev/null//调试好后应屏蔽debug输出信息,避免产生系统垃圾占用过多inode, 如需输出日志, 可重定向至日志文件
[root@wangqing ~]# crontab -l
####backup www to /backup 30 01 * * * /bin/ sh /scripts/www_backup.sh /tmp/ www_backup.log
[root@wangqing ~] # 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
说明以上答案每一行是什么含义
2.新建/scripts/httpd.sh文件,并让/scripts/httpd.sh脚本在每天的00:10分执行
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文件,该如何恢复。
/p3.toutiaoimg.com/origin/tos-cn-i-qvj2lq49k0/49da2da0342544a6a4c02f2aa442d537","uri":"","width":323,"height":27,"darkImgUrl":"","darkImgUri":"","formulaImgStatus":"succeed"}" class="syl-plugin-formula"
Linux任务计划和周期性任务执行
常用选项:
-l 查看作业队列,相当于atq
-f 从某个指定文件文件中读取作业任务,不通过交互式输入。
-d 删除指定的作业任务,相当于atrm。
-c 查看指定作业具体内容。
-q QUEUE指明队列。
TIME时间格式有:
HH:MM 小时:分钟 例如04:00
HH:MM YYYY-MM-DD 小时:分钟 年-月-日 例如15:00 2017-11-25
HH:MM[am|pm] [Month] [Date] 例如:04pm July 30
HH:MM[am|pm] + number [minutes|hours|days|weeks]在某个时间点再加几个时间后执行
例如:now + 5minutes 5分钟后执行
04pm + days三天后下午4点执行
[root@dxlcentOS ~]# at 15:55 2017-11-25 在15点55分执行:切换到tmp目录,执行ls命令
at cd /tmp
at ls
at EOT
job 3 at Sat Nov 25 15:55:00 2017
注意:输入结束后按ctrl+d,任务输入结束at EOT,执行结果屏幕不会显示,会以邮件形式发送到邮箱。要是没有mail命令,进行yum -y install mailx安装。
执行周期性任务要确保crond守护进程在运行。
执行pstree,要是crond运行起来可以看到。
或者执行:~]# systemctl status crond (centos7)
Active: active (running) ... ...
centos6:~]# service crond status
... is running
有时候为了安全起见,可以将不允许某些用户执行周期性任务的用户名添加到/etc/cron.deny文件里面即可。
cron任务分类:分系统cron任务和用户cron任务
总结:1.cron周期任务最小时间单位是分钟。
2.定义COMMAND时,如果命令需要用到%,需要对其转义;但放置于单引号中的%不用转义亦可。
3.某任务在指定的时间因关机未能执行,下次开机不会自动执行。
4.当修改之前定好的任务或新增循环任务时最好执行一下systemctl restart crond。
5.如果是系统管理使用的循环任务最好写入/etc/crontab。
6.避免系统资源分配不均,周与日月不可以同时并存。
cron循环任务设定后,要是服务器因意外关机,那么在停机期间,cron设定的循环任务是不会运行的,当服务器开机后,也不会执行过去到达时间点的循环任务,只能等待下个时间点到来才执行。要想重新执行,anacron就可以解决这个问题。
anacron 是一个程序不是一个服务,当centos进入crontab排程时,anacron 会主动每一小时运行一次。
如何在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,计划任务命令 每天
本文URL:http://ybzwz.com/article/hsppjg.html