2019-07-30

day22 操作系统定时任务

课程介绍

1.定时任务概念介绍
2.定时任务实现方式
3.定时任务配置应用过程
4.定时任务操作练习

课程回顾

1.掌握文件权限信息
2.掌握系统默认权限设置 umask
3.了解系统用户相关文件 /etc/passswd 用户密码文件 /etc/shadow
4.了解系统用户相关目录 /etc/skel
5.掌握普通用户提权方法
a. 直接切换用户 su -
b. 修改文件/目录权限 chown 属主属组其他 chmod 权限设置
c. 进行用户提权 sudo visudo
d. 进行特殊权限位配置 setuid setgid 粘滞位

chattr +i 文件信息 --- 讲一个文件上锁
chattr -i 文件系统 --- 讲一个文件解锁
lsattr 文件系统查看是否上锁

6.掌握用户管理的相关命令

系统定时任务概念 == 生活中的闹钟

1.时间信息有时不准 时间同步操作 每过10分钟
2.备份数据信息 凌晨
代替人自动完成任务

系统定时任务实现方法:

1.定时任务软件: cronie
2.定时任务软件: atd 设置一次定时任务,执行一次

  1. 定时任务软件: anacron 定时时间有固定设置 每小时 每天 每月 cronie-anacron
实现定时任务配置:

1.系统默认定时任务:
cron.hourly/ --- 每小时执行目录中脚本文件
cron.daily/ --- 每天执行目录中脚本文件
cron.weekly/ --- 每周执行目录中脚本文件
cron.monthly/ --- 每月执行目录中脚本文件

vim oldboy.sh
井!/bin/bash
echo "info_$(date +%F_%T)" >/tmp/test_cron.txt

2.用户自定义是指定时任务
一个命令 两个文件
crontab --- 设置和查看定时任务命令
crontab -l --- 查看设置的定时任务
crontab -e --- 编辑设置定时任务

配置文件
/var/spool/cron/root --- root用户设置定时任务配置文件
/var/log/cron --- 定时任务日志文件

定时任务如何进行配置

准备工作:
systemctl start crond
systemctl enable crond
开启定时任务

编写定时任务:
[root@han ~]# cat /etc/crontab


2019-07-30_第1张图片
image.png

定时任务时间信息 执行任务信息
* * * * * 命令/脚本

时间信息:
*(分) *(时) *(日) *(月) *(周)
分钟: 0-59
小时: 0-23
日期:1-31
月份: 1-12
星期: 0-6

任务信息:
cp /etc/hosts /etc/hosts.bak
练习:1.凌晨两点半将数据进行 备份
crontab -e
30 2 * * * /usr/big/cp /etc/host /etc/hosts.baK
2.如何实时监控定时任务日志信息
tail -f /var/log/cron


2019-07-30_第2张图片
image.png

image.png

1):编写定时/定时任务触发 时间信息
2):主机名称信息
3):读取什么定时任务文件信息
4):定时任务完成了事情
加快任务执行 调整时间 尽量往后调整
date -s 20190801 14:29:40

3.下午3点40,8月6日,周日 将数据进行备份
40 15 6 8 0 和女朋友发生小秘密
PS: 在设置时间信息时, 周信息不能和日期信息一起设置

4.每隔一个小时,数据备份
00 */1 * * * /usr/big/cp /etc/host /etc/hosts.baK
*/1 每1小时执行任务
* 每个时刻
说明:每个一个小时会执行
1:00 --- 2:00 执行时间条件
* --- 每分钟执行
在设置好一个时间信息,前面的时间也要做规划

05.每天上午9,10,11,12点 执行数据备份
- 连续的时间访问
0 9-12 * * * /usr/big/cp /etc/host /etc/hosts.baK

06.每天上午九点 十一点 执行一次
, 非连续的时间范围
0 9,11 * * * /usr/big/cp /etc/host /etc/hosts.baK

时间表示形式
* 每多少小时 ,
*/n 每隔n久执行一次 *
1-10 连续时间范围
1,10 非连续时间范围

2019-07-30_第3张图片
image.png

定时任务编写常见问题

1.每隔五分钟,进行时间同步
方法一: */5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com
方法二: 放入脚本文件中

image.png

说明:定时任务执行时,识别的环境变量只有/usr/bin:/bin
2.规范化编写定时任务
#
* * * * ech 13246841 &>/dev/unll
posttfix 服务开启 --- /var/spool/mail/root 邮件 文件不断变大 占用block
postfix 服务关闭 --- /var/spool/postfix/maildrop 大量小文件 占用inode
/dev/null --- 系统黑洞
3.将/etc/hosts 打包备份 /opt/hosts_时间信息.tar.gz 每分钟操作

说明:定时任务中有些特殊符号无法识别
解决方法一:将特殊符号前面加上转义符号
解决方法二:将有特殊符号命令放入脚本中 /server/scripts/tar.sh
tar zcvf /opt/hosts_$(date +%F).tar.gz /etc/hosts &>/dev/null
* * * * * sh /server/scripts/tar.sh &>/dev/null

定时任务编写注意事项:

  1. 编写定时任务需要有注释信息(时间 编写人员 任务作用)
  2. 编写定时任务时任务注意环境变量 /usr/bin:/bin 命令书写为绝对路径
  3. 编写定时任务注意特殊符号 需要编辑转义符号 \
  4. 编写定时任务需要将输出信息定义到空 &>/dev/null
  5. 编写定时任务建议使用脚本编写
编写定时任务规范:

命令编写定时任务:
第一个里程: 测试命令是否可以在命令行执行
第二个里程: 放入定时任务中(绝对路径信息)
第三个里程: 调整时间信息进行测试
第四个里程: 检查日志/检查定时任务执行结果

脚本编写定时任务:
第一个里程: 编写脚本信息
第二个里程: 测试脚本执行效果
/bin/sh /server/scripts/test.sh
第三个里程: 放入定时任务中(绝对路径)
第四个里程: 调整时间信息进行测试
第五个里程:检查日志信息/检查任务执行结果

测试环境测试定时任务没问题:
执行脚本将线上服务器定时任务做改动
comprsss.sh
#!/bin/bash
tar xxxx

#!bin/bash
echo "* * * * * /sh/bin /server/svripts/compress.sh" >>/var/spool/cron/root

课程知识总结

  1. 定时任务概念作用:
    让反复工作任务,可以系统自动执行
  2. 定时任务实现方式:
    系统默认定时任务:
    自定义定时任务 最短周期是每分钟 储存服务器(用户数据信息 18:00 ---上传图片 --- 18:00:59)
  3. 定时任务编写规范
    定时任务文件格式规范 * * * * * 任务
    定时任务时间定义法

你可能感兴趣的:(2019-07-30)