linux 定时备份shell脚本
单目录备份
#!/bin/bash
# 设置源文件夹和备份文件夹
SOURCE_DIR="/path/to/source"
BACKUP_DIR="/path/to/backup"
# 创建备份目录,如果不存在的话
mkdir -p "$BACKUP_DIR"
# 备份文件
echo "开始备份..."
tar -czf "$BACKUP_DIR/backup_$(date +%Y%m%d%H%M%S).tar.gz" "$SOURCE_DIR"
echo "备份完成."
多目录备份
#!/bin/bash
# 备份目录列表
BACKUP_DIRS=("/home/imgs" "/home/wars" "/home/projects")
# 备份存储的目标目录
BACKUP_DESTINATION="/home/backup"
# 备份文件前缀
BACKUP_PREFIX="backup-$(date +%Y%m%d%H%M%S)"
# 创建备份
function create_backup() {
local src_dir=$1
local dest_dir=$2
local backup_name=$3
# 创建目标目录
mkdir -p "$dest_dir"
# 执行tar命令进行备份
tar -zcpf "$dest_dir/$backup_name.tar.gz" "$src_dir"
}
# 对每个目录进行备份
for dir in "${BACKUP_DIRS[@]}"; do
create_backup "$dir" "$BACKUP_DESTINATION" "${BACKUP_PREFIX}_${dir//\//_}"
done
# 打印备份完成信息
echo "备份完成。"
给脚本添加可执行权限
chmod +x backup.sh
设置定时执行
使用crontab -e命令打开当前用户的crontab文件,并添加一行以设置定时任务。例如,每天凌晨1点执行备份:添加如下内容
# 每日凌晨1点执行
0 1 * * * /path/to/backup.sh
# 每周一23点执行
0 23 * * 1 /home/backup_shell/backup.sh