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
- 扩展
扩展: #需求当前系统的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.将执行结果定向到文件中排查问题,结果不想看定向到空