昨天课程重点回顾
- 课程知识梳理复习
-
掌握操作系统用户分类 管理员 虚拟用户 普通用户
-
掌握特殊权限设置方法 setuid setgid 粘滞位 chattr lsattr
-
掌握用户相关文件目录 /etc/passwd /etc/skel
-
掌握用户相关命令信息
groupadd : 创建指定用户组 -g 指定组idgroupadd dev -g 2000
grep dev /etc/group
dev❌2000:
groupdel :
groupmod : 修改指定用户组 -g 指定组id开发人员 – 线上服务器 完全控制 开发目录
chown dev01.dev01 /development/
chmod g+w /development/ll /development/ -d
drwxrwxr-x 2 dev01 dev01 6 Nov 11 15:44 /development/
usermod sa01 -G dev01运维人员 – 线上服务器 完全控制 开发目录 运维目录 数据库目录
???
数据库人员 – 线上服务器 完全控制 数据库目录
???如何查看用户信息:
whoami — 以什么用户登录系统
id — 查看用户uid数值 所属组信息 以及组id数值
w — 显示系统当前状态登录用户信息
ps -ef|grep ssh —> kill 进程号
last — 记录谁远程连接破坏过系统
lastlog — 系统用户登录情况合理设置不同用户权限, 设置用户密码信息
密码信息如何设置管理:
方法一: excel 表格
方法二: 利用密码管理软件/jumpserver ******
方法三: 需要密码令牌 动态变化
-
操作系统定时任务
操作系统定时任务介绍
闹钟: 定时间 任务响铃声
概念介绍: 周期性, 让系统完成相应操作任务
作用说明: 1) 周期性, 进行数据备份操作
2) 周期性, 重启服务程序 tomcat--java--耗费内存 移动互联网
3) 周期性, 切割日志信息
4) 周期性, 执行脚本文件
系统定时任务实现方式
1) 利用crond 服务实现定时任务 ******
查看是否开启服务:systemctl status crond
一个命令: crontab
crontab -e 配置定时任务
crontab -l 查看定时任务
一个文件: /var/log/cron
2) 利用atd 软件实现定时任务 类似闹钟 一次设置, 只执行一次
3) 利用anacron 软件实现定时任务 系统默认设置定时任务 设置时间不灵活
/etc/cron.daily --- 周期为每天 24小时计算为一天
/etc/cron.hourly --- 周期为每小时
/etc/cron.monthly --- 周期为每个月
/etc/cron.weekly --- 周期为每周
练习
练习:
1. 每天凌晨2点整, 休息睡觉
错误: * 02 * * * 休息睡觉
说明: 2点时间里面, 每分钟都会执行相应任务
正确; 0 02 * * * 休息睡觉
2. 每周周五大保健
错误: * * * * 5 15 周五 00:00
正确: 00 21 * * 5
3. 每个月5日 晚上7点整, 周五和女朋友约会
00 19 5 * 5 约会
理论: 星期和日期 建议不要同时设置
实际: 每月5号 19点整会约会
每星期周五 晚上19点整约会
4. 每隔2个小时, 喝水
0 */2 * * *
1点设置定时任务 每隔2个小时 正确预习 3点执行 5点执行 7点执行
时间符号信息:
* : 每 每分钟 每小时 每天 每个月 每周几
*/n : 每隔多久 每隔n分钟 每隔n小时
执行周期是n倍数时间
*/2小时 正确执行 0 2 4 6 8 10 12 14
*/3小时 正确执行 0 3 6 9 12 15 ..
, :指定时间完成任务
1,3,5,7
tail -f /var/log/cron查看日志
定时任务设置常见错误
1) 定时任务命令信息尽量使用绝对路径
练习: 每分钟, 执行时间同步任务, ntpdate
编写定时任务:
* * * * * echo $PATH >/tmp/test.txt
查看执行结果:
# cat /tmp/test.txt
/usr/bin:/bin
# which ntpdate
/usr/sbin/ntpdate
2) 定时任务命令信息最好不要使用特殊符号
定时任务无法识别特殊符号处理方法:
方法一: 将定时任务命令信息放入到脚本文件中
* * * * * /bin/sh /root/test.sh
方法二: 将特殊符号信息进行转义
* * * * * echo "`date +\%F_\%T`" >> /tmp/tes
建议星期信息和日期信息不要同时设置
/n设置时要符合每天24小时逻辑
3. 尽量让定时任务执行时不要产生输出信息(错误输出)
定时任务操作出错信息会追加到一个邮件文件中
/var/spool/mail/root 消耗磁盘资源 block
关闭邮件服务, 错误信息不会追加到邮件文件中
systemctl status postfix.service --- 让系统发送邮件信息服务
但是会生成大量小文件信息
/var/spool/postfix/maildrop/ 消耗磁盘资源 inode
处理方法:
第一个里程: 邮件服务开启
systemctl start postfix.service
第二个里程: 定时任务执行时错误信息和正确信息放入到系统黑洞中
/dev/null
# crontab -e
* * * * * /usr/bin/cp /oldboy/oldboy.txt /backup &>/dev/null
* * * * * /usr/bin/cp /oldboy/oldboy.txt /backup >/dev/null 2>&1
4. 尽量给定时任务设置注释说明信息
5. 大于2个任务需要同一时刻执行, 编写脚本完成多个任务
作业:
01 以下设置时间表示什么意思:
0 1-5/2 * * * 学习
凌晨1点到5点之间两小时执行定时任务
0 1,3,6/2 * * * 学习
语法格式不对
02 编写全网备份数据定时任务:
a 将重要文件打包备份 /etc/hosts /etc/rc.local /etc/profile 备份/backup目录中
tar zcvhf /backup/system_bak.tar.gz /etc/hosts /etc/rc.local /etc/profile
b 每个压缩文件名称后面要有日期信息
system_backup.tar.gz-20191112
system_backup.tar.gz-20191113
tar zcvhf /backup/system_bak.tar.gz-`date "+%F_%T"` /etc/hosts /etc/rc.local /etc/profile
tar zcvhf /backup/system_bak.tar.gz-$(date "+%F_%T" -d "-1 day") /etc/hosts /etc/rc.local /etc/profile
c 每天会清理备份数据, 将7天以前备份数据要进行删除
find /backup -type f -name “system.*” -mtime +7|xargs rm
d 定时任务每天0点执行
编写脚本文件:
backup.sh
#!/bin/bash
tar zcvhf /backup/system_bak.tar.gz-date "+%F_%T"
/etc/hosts /etc/rc.local /etc/profile
find /backup -type f -name “system.*” -mtime +7|xargs rm
编写定时任务:
0 0 * * * /bin/sh /test.sh
周一数据备份 周二 0点备份 生成备份数据 system_bak.tar.gz-周一