定时任务

定时任务概念

定时任务作用:
什么时间 做什么事
定时备份重要的数据
业务的低谷期
打包压缩 减少磁盘IO
时间同步 每间隔5分钟同步一次

定时任务cron
配置定时任务方式有两种

第一种 使用系统的定时任务配置
配置文件/etc/crontab

第二种:基于用户的定时任务
/var/spool/cron/以用户命名的文件
使用定时任务的相关命令操作:
crontab -e 实际编辑的 /var/spool/cron/用户名
crontab -l 列出/var/spool/cron/用户 的定时任务
cat /var/spool/cron/用户 查看定时任务

定时任务的日志文件: #定时任务出了问题看不出来
centos 麒麟   /var/log/cron
unbuntu       /var/log/syslog

定时任务的使用

第一种方式

编辑配置文件/etc/crontab
# .---------------- 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
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed

第一颗星  minute (0 - 59)       分钟 分钟0表示整点
第二颗星  hour (0 - 23)         小时 小时0表示晚上12点
第三颗星  day of month (1 - 31)  天  1-31天
第四颗星  month (1 - 12)         月  1-12个月
第五颗星  day of week (0 - 6)   星期  0表示周日

*  表示每的意思 */1 相同
*/ 表示间隔 每隔五分钟 10.32配置的定时任务 下次的执行时间10:35
-  表示区间范围  3-5  表示3点到五点
, 表示间隔 



案例1:每分钟执行自己的姓名到a.txt中
[root@oldboy:~]# vim /etc/crontab
* * * * * root echo "shangwenhao" >> a.txt
[root@oldboy:~]# cat a.txt 
[root@oldboy:~]# date
Fri Jul 19 17:02:03 CST 2024
[root@oldboy:~]# cat a.txt
shangwenhao

案例2:每间隔五分钟执行一次时间同步的命令
*/5 * * * * root ntpdate ntp2.aliyun.com
按照整点执行
eg:17.03 下次执行17.05

案例3:每天晚上的12点执行命令
00 00 * * * root ntpdate ntp2.aliyun.com

* 00 * * * root ntpdate ntp2.aliyun.com
#12点的每分钟执行一次

案例4.每天早上的3点-5点每小时执行一次
00 3-5 * * * root ntpdate ntp2.aliyun.com

案例5:每天早上的3-5 8-10点执行
00 3-5,8-10 * * * root ntpdate ntp2.aliyun.com

案例6:每天上午8点到下午三点 间隔2小时执行一次
00 8-15/2 * * * root ntpdate ntp2.aliyun.com

案例7:半夜10点到第二天早上5点
00 23-0,0-5 * * * root ntpdate ntp2.aliyun.com

案例8:每半个小时执行
*/30 * * * root ntpdate ntp2.aliyun.com
30 * * * root ntpdate ntp2.aliyun.com
#每个小时的30执行 eg:1:30  2:00  2:30

案例8:晚上的凌晨两点每半小时执行一次
30 02 * * root ntpdate ntp2.aliyun.com

第二种方式

/var/spool/cron/root
crontab -e 配置定时任务
crontab -l 查看

定时任务注意事项

在定时任务中 不识别% 需要加转义 \
多条命令写脚本
脚本面前加sh 或bash执行
将执行结果定向到文件中排查问题

定时任务关联脚本

注意语法结构
脚本文件是以sh为结尾的文件
出现2条或两条以上的命令写入到脚本中 使用定时任务执行脚本
按照行执行
语法结构:
sh file.sh
[root@shang:~]# vim 1.sh 
echo "shang" >> a.txt
[root@shang:~]# cat a.txt 
[root@shang:~]# sh 1.sh 
[root@shang:~]# cat a.txt 
shang

案例:
[root@shang:~]# vim 1.sh
echo "shang" >> a.txt
sed -i 's#shang#iloveyou#g' a.txt
[root@shang:~]# sh 1.sh 
[root@shang:~]# cat a.txt 
iloveyou
iloveyou
iloveyou

find查找查找所有 需要加*
        
注意事项 在定时任务中 不识别% 需要加\ 
查看执行步骤 -x
[root@shang:~]# sh -x 1.sh 
+ echo shang
+ sed -i s#shang#iloveyou#g a.txt
执行脚本的两种方式 需要执行权限x
一种是使用绝对路径 相对路径执行
/root/1.sh  #绝对路径
cd切换
./1.sh #相对路径


第二种是执行脚本的方式:不需要执行权限
sh 1.sh
sh /root/1.sh

通过脚本执行的流程

命令可以执行
命令写入脚本中
测试脚本是否可以成功执行
脚本加到定时任务
排查定时任务

将执行结果定向到文件中检查

echo shang >> /root/a.txt &>>/root/test.log
无论结果是正确还是错误都定向输出到test文件中
/var/log/syslog定时任务日志
使用crontab -e 刚开始需要选择编辑器
孩儿立志出乡关,学不成名誓不还。埋骨何须桑梓地,人生无处不青山。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇