01. 课程介绍部分
1.定时任务概念介绍
2.定时任务实现方式
3.定时任务配置应用
4.定时任务操作练习
02.知识回顾
1.掌握文件权限信息
2.掌握系统默认权限设置 umask
3.了解系统用户相关文件及用途 /etc/passwd /etc/shadow
4.了解系统用户相关目录 /etc/skel
5.掌握普通用户提权方法
a.直接切换用户 su-
b.修改文件或者目录权限 chown chmod
c.进行用户提权 sudo visudo
d.进行特殊权限位配 setuid setgid 粘滞位
扩展
useradd :cannot open /etc/shadown
chattr +i 文件信息 ---将一个文件上锁,root用户也打不开,是一种保护措施
lsattr /etc/shadow
chattr -i 文件信息 ---讲一个文件解锁
lsattr 文件系统
6.掌握用户管理相关命令
03.系统定时任务概念 ==生活中闹钟
##1 时间信息有时不准 时间同步操作 系统每过
##2 备份数据信息 凌晨
代替人自动完成一些任务
04.系统定时任务实现方法:
1.定时任务软件:cronie *****
2.定时任务软件:atd 设置一次定时任务,执行一次定时任务
3定时任务软件: anacron 定时时间有固定设置 每小时 每天 每月 cronie-anacron
实现定时任务配置
1.系统默认定时任务
/etc/cron.daily/ ---每天执行目录中的脚本文件
/etc/cron.hourly/ ---每小时执行目录中的脚本文件
/etc/cron.weekly/ ---每周执行目录中的脚本文件
/etc/cron.monthly/ ---每月执行目录中的脚本文件
vim oldboy.sh
#!/bin/bash
echo "info_$(date +%F_%T)" >/tmp/test_cron.txt
2.用户自定义设置定时任务
一个命令 两个文件
crontab ---设置和查看定时任务 参数 -l
#crontab -l ---产看设置的定时任务
#crontab -e ---编辑设置定时任务/语法检查功能
配置文件
/var/spool/cron/root或者其他用户 ----(用户)设置定时任务配置文件 用户是谁建立是谁
/var/log/cron --- 定时任务日志文件
05.定时任务如何进行配置
systemctl status crond
systemctl enable crond
定时任务样例:cat /etc/crontab
SHELL=/bin/bash 环境变量信息
PATH=/sbin:/bin:/usr/sbin:/usr/bin 环境变量信息
定时任务时间信息 执行任务信息
* * * * * 命令/脚本
时间信息:
*(分)*(时)*(日)*(月)*(周)
分钟:0-59
时:0-23
日期:1-31
月:1-12
周:0-6
任务信息:
eg: cp /etc/host /etc/hosts.bak
练习 时间与任务整合
01.凌晨2点半 将数据进行备份
30 2 * * * cp /etc/host /etc/hosts.bak
第一步:crontab -e
30 2 * * * cp /etc/host /etc/hosts.bak
第二步:验证定时任务功能
01.实时监控定时任务日志信息 tail -f /var/log/cron
日志信息
第一列:编写时间/定时任务触发 时间信息
第二列:主机名称时间
第三列:读取什么定时任务文件信息
第四列:定时任务完成了事情
02.加快定时任务执行
调整时间信息
PS:调整时间尽量向后调整
PS:在设置时间信息时,周信息不能和日期信息一起设置
PS:在设置好一个小时时间,最好将分钟时间也做规划调整
练习:02 将数据进行备份
下午3:40 8月6日 周日 错误
40 15 6 8 0 cp /etc/hosts /tmp/etc/hosts.bak
03.每隔一个小时,数据备份
/n 每隔多久执行定时任务 间隔多久
其中的* 表示每分钟 每时 每天 每月 每周
00 /1 * * * cp /etc/hosts /tmp/etc/hosts.bak
04.每天上午9,10.11.12点执行备份数据
- 表示连续的时间访问
0 9-12 * * * cp /etc/hosts /etc/hosts.bak
05.每天上午9 11 执行数据备份
, 非连续的时间范围
0 9,11 * * * cp /etc/hosts /etc/hosts.bak
时间表示形式:有图
* 每多少时间
*/n 每隔多久 间隔时间
1-10 连续时间范围
1,10 非连续时间范围 表示的是每隔时刻
06.定时任务编写常见问题:
1.每隔5分钟,进行时间同步
如何编写定时任务:
方法一:采用绝对路径进行编写
*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com
方法二:放入到脚本文件中
#!/bin/bash
注:定时任务执行时,识别的环境变量只有/usr/bin:/bin
2.规范化编写定时任务
*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com &>/dev/null
postfix 服务开启 --- /var/spool/mail/root (root用户)邮件不断变大 占用更多block
postfix 服务关闭 --- /var/spool/postfix/maildrop/ 大量小文件 占用更多inode
/dev/null ---系统黑洞---不会占用磁盘空间
3.将/etc/hosts 打包备份 /opt/hosts_时间信息.tar.gz 每分钟操作
注:定时任务中有些任务特殊符号有些无法识别
解决方式一:将特殊符号前面加上转义字符号
* * * * * tar zcvf /opt/hosts_$(date +\%F).tar.gz /etc/hosts
解决方式二:将有特殊符号命令放入脚本中
#!/bin/bash
tar zcvf /opt/hosts_$(date +\%F).tar.gz /etc/hosts
* * * * * sh /server/scripts/tar.sh &>/dev/null
定时任务编写注意事项
01.编写定时任务需要有注释信息(时间 编写人员 任务作用)
02.编写定时任务注意环境变量 /usr/bin:/bin
03.编写定时任务注意特殊符号 需要标记转义符号
04.编写定时任务需要将输出信息定义到空 &>/dev/null
05.编写定时任务建议使用脚本编写
编写定时任务规范:
1.命令编写定时任务:
第一个里程:测试命令是否可以在命令行执行
第二个里程:放入定时任务中(绝对路径)
第三个里程:调整时间信息进行测试
第四个里程:检查日志信息/检查任务执行结果
2.脚本编写定时信息:
第一个里程:编写脚本信息
第二个里程:测试脚本执行效果
/bin/sh /server/scripts/test.sh
第三个里程:放入定时任务中(绝对路径)
第四个里程:调整时间信息进行测试
第五个里程:检查日志信息/检查任务执行结果
测试环境测试定时任务没问题:
执行脚本将线上服务器定时任务做改动
compress.sh
#!/bin/bash
tar XXXXX
#!/bin/bash
echo "* * * * * /bin/sh /server/scripts/compress.sh" >>/var/spool/cron/root
07.课程知识总结
1.定时任务概念总结:
让反复工作任务,可以系统自动执行
2.定时任务实现方式:
系统默认定时任务
自定义定时任务:最短周期是每分钟 -----实时同步备份数据
3.定时任务编写规范
定时任务文件格式规范 ***** 任务
定时任务时间定义方法
4.定时任务常见错误