day18-定时任务

01.知识点回顾
权限管理:
1.文件对于当前的用户权限
2.rwx含义
3.rwx对应的数字 421
4.授权
  ugo
  数字
  授权文件为--xr-xr--
  chmod -R 递归授权
  文件最高权限是: 666
  目录最高权限是: 777
5.隐藏权限
  i a
  lsattr
  chattr
6.suid
  o+t

批量创建用户,设置6位随机密码
useradd test01;echo `mkpasswd`|passwd --stdin test01
useradd test02;echo `mkpasswd`|passwd --stdin test02

[root@oldboy:~]# echo oldboy{1..3}|xargs -n1|awk
'{print "useradd "$1";echo `mkpasswd`|passwd --stdin "$1}'
useradd oldboy1;echo `mkpasswd`|passwd --stdin oldboy1
useradd oldboy2;echo `mkpasswd`|passwd --stdin oldboy2
useradd oldboy3;echo `mkpasswd`|passwd --stdin oldboy3

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

2.定时任务cron
配置定时任务方式有两种: 掌握
第一种: 使用系统的定时任务配置
配置文件: /etc/crontab
cat /etc/crontab

第二种: 基于用户的定时任务
/var/spool/cron/root  # 默认不存在
使用定时任务的相关命令操作:
crontab -e 实际编辑的 /var/spool/cron/root
crontab -l # 列出/var/spool/cron/root中的定时任务
cat /var/spool/cron/root # 查看定时任务

3.定时任务日志文件 # 看不出问题
centos 麒麟 /var/log/cron
ubt: 	   /var/log/syslog

4.定时任务使用

4.定时任务使用
第一种方式配置: 编辑/etc/crontab
时间格式:
第一个星 * 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)  周1-周日  周日表示方式0或7

4.1 定时任务理解
* * * * * 代表每间隔1分钟 == */1
*/5 * * * * 代表每间隔5分钟
00 * * * * 代表每小时的0分钟,就是整点
00 3-5 * * * 代表每天3点到5点,的整点执行
00 3-5,13-15 * * * 每天凌晨3点到5点和1点-3点的整点执行
00 3-15/2 * * * 每天凌晨3点到中午3点每间隔2小时,执行一次



案例1.每分钟执行一次 echo 姓名 到name.txt中
[root@linuxnc ~]# cat /etc/crontab
* * * * * root echo oldboyedu >> name.txt

[root@linuxnc ~]# cat name.txt
oldboyedu
oldboyedu


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


案例2.每间隔5分钟执行一次时间同步的命令
*/5 * * * * root ntpdate ntp1.aliyun.com

案例3.每天晚上12点执行命令echo test >> /opt/12.txt  笔试题
00 00 * * * root  echo test >> /opt/12.txt
* 00 * * * root  echo test >> /opt/12.txt # 表示晚上12点的每分钟执行一次 12.01 12.02. 12.59..


案例4.每天早上3点-5点每小时执行一条命令 echo test >> /root/test.txt
00 3-5 * * * root echo test >> /root/test.txt

案例5.每天早上的3点-5点,8点-10点执行一条命令
00 3-5,8-10 * * * root echo test >> /root/test.txt

案例6.每天上午8点到下午3点,间隔2小时执行1次
00 8-15/2 * * * root echo test >> /root/test.txt
23-0,0-5

案例7.每半小时执行一次
*/30 * * * * root  echo test >> /opt/12.txt
30 * * * * root  echo test >> /opt/12.txt   # 每个小时的30执行 1点30  2点30 ...


案例8.晚上凌晨2点30执行一次
cat /etc/crontab
#30 02 * * * root echo oldboyedu.com >> /root/test.txt
#00 04 * * * root sed -ri '/oldboyedu|crontab/s/^/#/g' /etc/crontab



案例:每天凌晨/data/创建以天为单位的目录
    打包/etc/hosts /etc/passwd
    打包的结果放到创建的目录
    查找目录下修改时间7天前的删除
    /data/2024-07-19/etc.tar.gz
    /data/2024-07-20/etc.tar.gz

    出现2条以上的命令写入到脚本中,使用定时任务执行脚本






目录的拼接:
[root@oldboy:~]# mkdir `date +%F`
[root@oldboy:~]# ll
total 0
drwxr-xr-x 2 root root 6 Jul 19 11:20 2024-07-19

[root@oldboy:~]# mkdir `date +%F`_oldboy
[root@oldboy:~]# ll
drwxr-xr-x 2 root root 6 Jul 19 11:22 2024-07-19_oldboy

[root@oldboy:~]# mkdir `date +%F`_`hostname`
[root@oldboy:~]# ll
total 0
drwxr-xr-x 2 root root 6 Jul 19 11:22 2024-07-19_oldboy


  1. 扩展
扩展: #需求当前系统的IP地址+时间+主机名称 创建目录


定时任务注意事项:
1.在定时任务中,不识别% 需要加转义\
* * * * * root mkdir -p /data/`date +\%F`_`hostname`
2.多条命令写脚本
3.脚本前面加sh 或 bash执行
4.将执行结果定向到文件中排查问题,结果不想看定向到空



[root@oldboy:~]# mkdir -p /server/scripts
[root@oldboy:scripts]# cat backup.sh
dir=`date +%F`_`hostname`
mkdir -p /data/$dir
cd /etc
tar zcf /data/$dir/etc.tar.gz hosts passwd
find /data/* -mtime +7|xargs rm -rf		# 注意/data/*下面的所有


[root@oldboy:scripts]# sh backup.sh
[root@oldboy:scripts]# ll /data/
total 0
drwxr-xr-x 2 root root 24 Jul 19 11:32 2024-07-19_oldboy
[root@oldboy:scripts]# ll /data/2024-07-19_oldboy/
total 4
-rw-r--r-- 1 root root 1280 Jul 19 11:32 etc.tar.gz
[root@oldboy:scripts]# tar tf /data/2024-07-19_oldboy/etc.tar.gz
hosts
passwd


通过脚本执行的流程:
1.命令可以执行
2.命令写入脚本中
3.测试脚本是否可以成功运行
4.脚本加到定时任务
5.排查定时任务


[root@oldboy:scripts]# cat /etc/crontab
* * * * * root sh /server/scripts/backup.sh

命令比较多查看执行步骤-x
[root@oldboy:scripts]# sh -x backup.sh
++ date +%F
++ hostname
+ dir=2024-07-19_oldboy
+ mkdir -p /data/2024-07-19_oldboy
+ cd /etc
+ tar zcf /data/2024-07-19_oldboy/etc.tar.gz hosts passwd
+ find /data/2024-07-19_oldboy -mtime +7
+ xargs rm -rf


执行脚本的方式两种:
一种是使用绝对路径/相对路径执行  需要x执行权限
/server/scripts/backup.sh  # 绝对路径
cd /server/scripts:
				   ./backup.sh # 相对路径
第二种执行脚本的方式: 不需要执行权限
sh backup.sh
sh /server/scripts/backup.sh




将执行结果定向到文件中排查问题
* * * * * root  ech oldboyed >> /root/a.log  &>>/root/test.log




第二种定时任务配置:
第二种和第一种的区别就是不需要写root用户.

[root@oldboy:~]# crontab -e  # 配置定时任务
[root@oldboy:~]# crontab -l
* * * * * echo user >> /root/a.txt

[root@oldboy:~]# cat /var/spool/cron/root
* * * * * echo user >> /root/a.tx



扩展: 在使用crontab -e 来定义每间隔1分钟时间同步
[root@oldboy:~]# crontab -l
* * * * * echo user >> /root/a.txt
* * * * * ntpdate ntp1.aliyun.com


在企业中尽量使用一种配置方式。
麒麟和centos使用追加文件可以用  &>/dev/null
ubt:					    >>1.txt 2>&1
ubt: 使用crontab -e 刚开始需要选择2编辑器 vim


重点:
配置方式
vim /etc/crontab
cat /etc/crontab

crontab -e
crontab -l

* * * * *
* 每
*/n 表示每隔n
30 * * * * 1.30 2.30
- 表示区间范围 8-12
, 表示间隔  8-12,14-18

凌晨12点 笔试题
00 00 * * *  可执行命令


定时任务注意事项:
1.在定时任务中,不识别% 需要加转义\
* * * * * root mkdir -p /data/`date +\%F`_`hostname`
2.多条命令写脚本
3.脚本前面加sh 或 bash执行
4.将执行结果定向到文件中排查问题,结果不想看定向到空
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值