备份脚本backup_log.sh、计划任务

脚本+计划任务  =  解放了劳动力,提升效率 --》实现了自动化操作

编写一个脚本backup_log.sh实现备份/var/log目录下的所有日志文件到/backup目录下,要求文件名是包含当天日期,精确到秒,文件名例如:20240308151520-log.tar.gz。同时要求删除/backup目录下七天前的备份文件,只保留最近7天的,备份文件成功后,记录备份的时间和路径到/var/log/backup_log.txt, 同时在屏幕上输出备份成功。
 

#!/bin/bash

#/backup目录是存在的
mkdir  -p  /backup
#[ -d /backup ] || mkdir /backup
#备份的时间
backup_time=$(date +%Y%m%d%H%M%S)

#备份
tar  czf /backup/${backup_time}-log.tar.gz  /var/log   &>/dev/null
if (( $? == 0  ));then
	echo "$backup_time   $(hostname)  backup /backup/${backup_time}-log.tar.gz" |tee -a /var/log/backup_log.txt
fi

#删除7天前的文件
find  /backup  -mtime +7  -type f  -name "*-log.tar.gz"  -exec  rm  -rf  {} \;

计划任务:  定时去执行脚本

crond 每间隔1分钟就去检查每个用户的计划任务----》最短时间间隔是1分钟
 

cat /etc/crontab 
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed
  分 小时 日 月 周
crontab -e  编辑/创建一个计划任务

crontab -l  查看当前用户有哪些计划任务

补充知识:

, 表示单个的
- 表示联系的
/ 表示间隔
* 代表任意时间
 

 crontab简单示例

0. 2024年7月9号3点30分钟执行脚本/shell/backup_log.sh

30 3 9 7 * /shell/backup_log.sh && crontab -l | grep -v "30 3 9 7 *" | crontab -

1.每隔30分钟执行脚本/shell/backup_log.sh

*/30 * * * * /shell/backup_log.sh

2.每间隔5个小时执行脚本/shell/backup_log.sh

0 */5 * * * /shell/backup_log.sh

3.每个月的3号,7号,25-30号的3点30分执行脚本/shell/backup_log.sh

0 */5 * * * /shell/backup_log.sh

4.星期1到星期6的2点30分钟执行执行脚本/shell/backup_log.sh

30 2 * * 1-6 /shell/backup_log.sh

5.每周5的3:30分钟执行脚本/shell/backup_log.sh

30 3 * * 5 /shell/backup_log.sh

6.每间隔5天的8点30分钟执行脚本/shell/backup_log.sh

#!/bin/bash  
# 计算5天后的日期和时间  
next_run=$(date -d "+5 days" "+%Y-%m-%d %H:%M")  
# 使用at安排任务  
echo "/shell/backup_log.sh" | at "$next_run"

redis_backup.sh脚本是一个辅助脚本,用于在Redis双主架构中进行数据备份操作。以下是一个基本的redis_backup.sh脚本配置示例: ``` #!/bin/bash # 配置环境变量 export PATH=$PATH:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin # 设置日志文件路径 LOG_FILE="/var/log/redis_backup.log" # 设置备份目录 BACKUP_DIR="/data/redis_backup" # 执行备份操作 echo "`date +'%Y-%m-%d %H:%M:%S'` - Start to backup Redis data." >> $LOG_FILE # 判断备份目录是否存在,如果不存在则创建 if [ ! -d "$BACKUP_DIR" ]; then mkdir -p $BACKUP_DIR fi # 使用redis-cli命令进行备份操作 /usr/local/bin/redis-cli -h 127.0.0.1 -p 6379 --rdb $BACKUP_DIR/redis_backup.rdb # 判断备份文件是否存在,如果存在则进行压缩 if [ -f "$BACKUP_DIR/redis_backup.rdb" ]; then echo "`date +'%Y-%m-%d %H:%M:%S'` - Backup Redis data success." >> $LOG_FILE gzip $BACKUP_DIR/redis_backup.rdb else echo "`date +'%Y-%m-%d %H:%M:%S'` - Backup Redis data failed." >> $LOG_FILE fi ``` 以上脚本配置中,主要包括以下几个部分: 1. 配置环境变量:设置脚本使用的环境变量。 2. 设置日志文件路径:指定脚本输出的日志文件路径。 3. 设置备份目录:指定备份文件存储的目录。 4. 执行备份操作:使用redis-cli命令进行备份操作,将Redis的数据备份到指定的目录中。 5. 判断备份文件是否存在:在备份操作完成后,判断备份文件是否存在,如果存在则进行压缩操作。 以上是一个基本的redis_backup.sh脚本配置示例,可以根据具体需求进行修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值