31 lines
731 B
Bash
Executable File
31 lines
731 B
Bash
Executable File
#!/bin/bash
|
|
|
|
# 源文件夹和目标文件夹路径
|
|
source_dir=$1
|
|
target_dir=$2
|
|
|
|
mkdir ${target_dir} -p || true
|
|
|
|
# 备份文件名和目录
|
|
backup_date=$(date +%Y-%m-%d)
|
|
backup_dir="${target_dir}/backup_${backup_date}"
|
|
backup_file="${backup_dir}.tar.gz"
|
|
|
|
# 使用rsync命令进行文件夹备份
|
|
#rsync -a "$source_dir"
|
|
rsync --timeout=900 "$source_dir" "$backup_dir" -urdvt
|
|
|
|
# 压缩备份目录
|
|
tar -czf "$backup_file" "$backup_dir"
|
|
rm ${backup_dir} -fr
|
|
|
|
# 删除7天前的备份
|
|
delete_date=$(date -d "7 days ago" +%Y-%m-%d)
|
|
delete_dir="${target_dir}/backup_${delete_date}.tar.gz"
|
|
rm "$delete_dir"
|
|
|
|
# 输出日志
|
|
current_date=$(date +%Y-%m-%d)
|
|
current_time=$(date +%H:%M:%S)
|
|
echo "[$current_date $current_time] 备份成功"
|