rsync -avz /var/ftp/ /backup/ftp_backup/
-a
: 归档模式,保留文件属性-v
: 显示详细输出-z
: 压缩传输tar -cvpzf /backup/ftp_$(date +%Y%m%d).tar.gz /var/ftp/
-c
: 创建新归档-v
: 显示详细输出-p
: 保留权限-z
: 使用gzip压缩-f
: 指定输出文件#!/bin/bash
ftp -n <<EOF
open ftp.example.com
user username password
binary
lcd /backup/ftp_backup
cd /var/ftp
mget *
bye
EOF
#!/bin/bash
# ftp_backup.sh
BACKUP_DIR="/backup/ftp_backup"
LOG_FILE="/var/log/ftp_backup.log"
DATE=$(date +%Y%m%d)
echo "Backup started at $(date)" >> $LOG_FILE
# 使用rsync增量备份
rsync -avz --delete /var/ftp/ $BACKUP_DIR/current/ >> $LOG_FILE 2>&1
# 每周日创建完整备份
if [ $(date +%u) -eq 7 ]; then
tar -cvpzf $BACKUP_DIR/full/ftp_full_$DATE.tar.gz /var/ftp/ >> $LOG_FILE 2>&1
echo "Full backup created at $(date)" >> $LOG_FILE
fi
echo "Backup completed at $(date)" >> $LOG_FILE
# 每天凌晨2点执行备份
0 2 * * * /root/scripts/ftp_backup.sh
# 创建LVM快照
lvcreate -L 10G -s -n ftp_snap /dev/vg0/var_ftp
# 挂载快照
mkdir /mnt/ftp_snap
mount /dev/vg0/ftp_snap /mnt/ftp_snap
# 备份快照数据
rsync -avz /mnt/ftp_snap/ /backup/ftp_snap_backup/
# 卸载并删除快照
umount /mnt/ftp_snap
lvremove -f /dev/vg0/ftp_snap
rdiff-backup /var/ftp/ /backup/ftp_rdiff/
3-2-1 备份原则:
备份周期建议:
验证备份:
您需要根据实际环境调整路径、存储位置和备份频率等参数。