[if !vml]
[endif]
[if !vml]
[endif]
Sgcal
3w1h 框架
Linux系统定时任务Cron(d)服务应用实践
系统定时任务:
[if !supportLists]1、 [endif]什么是定时任务?
周期性得执行任务计划得软件,Linux定时任务得常用软件crond。
[if !supportLists]2、 [endif]使用定时任务软件,可以每天,每小时按你得需求重复得执行一项工作。
例如:备份 都是0点以后,2点爬起来备份,4点以后睡觉。
需要写一个程序实现自动备份,然后让定时软件帮助你执行。
闹钟。。。。。。可以追求女朋友。。。
[if !supportLists]3、 [endif]怎样用。
[if !supportLists](1) [endif]用户定时任务计划
[if !vml]
[endif]
要想配置定时任务,首先启动cron服务。
[if !vml]
[endif]
开启自启动:
[if !vml]
[endif]
[root@quyunlong~]# systemctl status crond
● crond.service - Command Scheduler
Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendorpreset: enabled)
Active: active (running) since Thu 2019-03-21 16:39:43 CST; 17h ago
MainPID: 6684 (crond)
CGroup: /system.slice/crond.service
└─6684 /usr/sbin/crond -n
Mar 21 16:39:43 quyunlong systemd[1]:
Started Command Scheduler.
Mar 21 16:39:43 quyunlong crond[6684]:
(CRON) INFO (RANDOM_DELAY will be...)
Mar 21 16:39:44 quyunlong crond[6684]:
(CRON) INFO (running with inotify...)
Hint: Some lines were ellipsized, use -l to
show in full.
[root@quyunlong~]#
Crontab 命令是用来设置定时任务规则得配置命令
定时任务内容存放得位置/var/spool/cron/
以当前用户明作为文件名
-l 查看已经设置得定时任务
-e edit编辑定时任务
-u 查看特定用户下得定时任务
Crontab –l ==cat /var/spool/cron/root
Crontab –e ==vim /var/spool/cron/root
编写定时任务得语法:
# For details see man 4 crontabs
# 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
共六列:
第一列:分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
第六列:要执行得任务命令程序
特殊符号:
*表示得每或每一天得意思
00 23 * * * cmd
-连续分隔符 1-10
00 8-23 * * * cmd
,列举 1,2,3,4,8,
[if !supportLists]00 [endif]1,2,3,4,8,* * * cmd
/n n是数字。
*/10 * * * * cmd
[if !vml]
[endif]
[if !supportLists](2) [endif]系统定时任务计划
[if !supportLists]1. [endif]不用管理员干预,系统自动执行。
[if !supportLists]2. [endif]也可以利用系统任务为管理员服务。
[if !vml]
[endif]
=============================================
*/1 * * * * /bin/sh /scripts/[if !vml]
[endif]data.sh
30 3,12 * * * /bin/sh /scripts/[if !vml]
[endif]oldboy.sh
30 */6 * * * /bin/sh /scripts/[if !vml]
[endif]oldboy.sh
30 8-18/2 * * * /bin/sh /scripts/[if !vml]
[endif]oldboy.sh
30 21 * * *
最强大脑
45 4 1,10,22 * * /application/apache/bin/apachectl graceful
10 1 * * 6,0 /application/apache/bin/apachectl graceful
0,30 18-23 * * * /application/apache/bin/apachectl graceful
00 */1 * * * /application/apache/bin/apachectl graceful
#################
* 23,00-07/1 * * * /application/apache/bin/apachectl graceful
00 */1 * * *
00 11 * 4 1-3 /application/apache/bin/apachectl graceful
每周日上午9:30去老男孩教育上课每天上午8:30去老男孩教育上课,这是脱产班的上课频率。
30 9 * * */0 cmd
30 8 * * * cmd
实践:
1
、每分钟追加一次oldboy字符串到/tmp/oldboy.log里
[if !vml]
[endif]
[if !vml]
[endif]
[if !supportLists]1、 [endif]命令行执行
[if !supportLists]2、 [endif]尽量用脚本文件实现
[if !vml]
[endif]
范例13-3:每天晚上0点,把站点目录/var/www/html下的内容打包备份到/data目录下,并且要求每次生成不同的备份包名。
至少分三步:
1.
命令行稿成功准备工作:
[root@oldboyedu ~]# mkdir /var/www/html /data -p
具体命令:
[root@oldboyedu ~]# tar zcvf /data/html_$(date +%F).tar.gz /var/www/html/
tar: Removing leading `/' from member names
/var/www/html/
[root@oldboyedu ~]# ll /data
total 4
-rw-r--r-- 1 root root 117 Mar 22 11:59 html_2019-03-22.tar.gz
2
、编写定时任务
[root@oldboyedu ~]# crontab -l
00 00 * * * tar zcvf /data/html_$(date +%F).tar.gz /var/www/html/
错了,不执行。。。。看报错日志。。。错误日志定时任务没有执行,出错了日志在哪里?出错日志/var/log/cron
Mar 22 12:03:01 oldboyedu CROND[18770]: (root) CMD (tar zcvf /data/html_$(date +)
定时任务对%的要求,百分号要转义。\%
正确答案:
[root@oldboyedu ~]# crontab -l
00 00 * * * tar zcvf /data/html_$(date +\%F).tar.gz /var/www/html/
优秀的答案(企业里):
1.
命令行执行
cd /var/www
tar zcf /data/html_$(date +%F).tar.gz ./html
2.
尽量用脚本文件实现
#mkdir /server/scripts -p #
存放脚本的文件
cd /server/scripts
#cat[if !vml]
[endif]bak.sh
cd /var/www
tar zcf /data/html_$(date +%F).tar.gz ./html
命令行执行:
/bin/sh /server/scripts/[if !vml]
[endif]bak.sh
3
、编辑定时任务
#bak html dir by oldboy at 2020108
00 00 * * * /bin/sh /server/scripts/[if !vml]
[endif]bak.sh &>/dev/null
[root@oldboyedu /server/scripts]# crontab -l|tail -2
#bak html dir by oldboy at 2020108
00 00 * * * /bin/sh /server/scripts/[if !vml]
[endif]bak.sh &>/dev/null
4
、检查正式结果
[root@oldboyedu /server/scripts]# ls -l /data
运维规范:
脚本位置:/server/scripts
软件位置:/server/tools
编译位置:/application/软件名字-版本,然后要软连接。
[if !vml]
[endif]
[if !vml]
[endif]
[if !vml]
[endif]
物 人 时间
考试:考到定时任务。
下周
用户管理1天
磁盘管理:2-3天
网络基础:4天 2天基础 2天实践
Shell基础:2天
三剑客深入1-2天
进程管理命令、安装命令1天
第一阶段结束:
第二阶段,搭建集群。
mso-far