需求分析
1.备份 --》cp,tar
2.如何获得时间? date
3.如何在文件名里使用时间? --》变量的调用
4.删除7天前的备份文件 --》find -exec rm -rf {} \;
步骤
1.给脚本起名字:backup_log.sh
2.编写脚本
3.执行脚本
第一步:编写脚本 backup_log.sh
[root@jack lianxi]# vim backup_log.sh
[root@jack lianxi]# cat backup_log.sh
#!/bin/bash
#get current time 获得当前精确的时间
get_time=$(date +%Y-%m-%d-%H_%M_%S)
#建立文件夹/backup
mkdir -p /bak
#备份/var/log目录下的所有文件到/bak目录下
tar -czf /bak/$get_time-log.tar.gz /var/log
#删除7天前的备份文件
find /bak -mtime +7 -name "*log.tar.gz" -type f -exec rm -rf {} \;
第二步:执行脚本 backup_log.sh
[root@jack lianxi]# bash backup_log.sh
tar: 从成员名中删除开头的“/”
[root@jack lianxi]# bash backup_log.sh
tar: 从成员名中删除开头的“/”
[root@jack lianxi]# bash backup_log.sh
tar: 从成员名中删除开头的“/”
[root@jack lianxi]# bash backup_log.sh
tar: 从成员名中删除开头的“/”
[root@jack lianxi]# bash backup_log.sh
tar: 从成员名中删除开头的“/”
[root@jack lianxi]# bash backup_log.sh
tar: 从成员名中删除开头的“/”
[root@jack lianxi]# bash backup_log.sh
tar: 从成员名中删除开头的“/”
第三步:进入/bak查看
[root@jack bak]# ls
2022-08-21-13_05_33-log.tar.gz 2022-08-21-13_07_05-log.tar.gz
2022-08-21-13_07_01-log.tar.gz 2022-08-21-13_07_06-log.tar.gz
2022-08-21-13_07_02-log.tar.gz 2022-08-21-13_07_07-log.tar.gz
2022-08-21-13_07_04-log.tar.gz
第四步:修改时间
[root@jack bak]# date -s '2022-11-11 13:11:32'
2022年 11月 11日 星期五 13:11:32 CST
第五步:再执行脚本backup_log.sh
[root@jack lianxi]# bash backup_log.sh
tar: 从成员名中删除开头的“/”
[root@jack lianxi]# bash backup_log.sh
tar: 从成员名中删除开头的“/”
[root@jack lianxi]# bash backup_log.sh
tar: 从成员名中删除开头的“/”
第六步:再次进入到/bak目录下查看
[root@jack bak]# ls
2022-11-11-13_11_46-log.tar.gz 2022-11-11-13_11_48-log.tar.gz 2022-11-11-13_11_49-log.tar.gz