一、准备工作:安装并配置CentOS FTP Server
在使用CentOS FTP Server进行远程备份前,需先确保FTP服务已正确安装、配置并运行。以下是基础步骤:
sudo yum update -y && sudo yum install vsftpd -y
/etc/vsftpd/vsftpd.conf,按需修改以下关键参数:
anonymous_enable=NO:禁止匿名登录;local_enable=YES:允许本地用户登录;write_enable=YES:允许用户上传文件;chroot_local_user=YES:将用户限制在其主目录(提升安全性);allow_writeable_chroot=YES:允许chroot目录可写(若用户需上传文件)。backupuser),并设置密码。sudo adduser backupuser
sudo passwd backupuser
sudo firewall-cmd --permanent --add-service=ftp
sudo firewall-cmd --reload
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
完成上述步骤后,FTP服务器已就绪,可通过客户端(如FileZilla)连接测试。
二、远程备份方法
通过系统自带的ftp命令,将本地文件上传至FTP服务器。示例如下:
ftp -inv your_ftp_server_ip <<EOF
user backupuser your_password
cd /remote/backup/directory # FTP服务器上的目标目录
mput /local/backup/* # 上传本地备份目录下的所有文件
bye
EOF
说明:-inv参数表示交互模式(i忽略错误、n禁止自动登录、v显示详细信息);mput用于批量上传文件。
lftp支持断点续传、递归同步等功能,适合大量文件备份。安装后执行:
lftp -u backupuser,your_password your_ftp_server_ip -e "mirror -R /local/backup/directory /remote/backup/directory; quit"
说明:mirror -R表示递归上传本地目录至FTP服务器(-R为反向同步)。
通过cron定时任务实现定期自动备份,步骤如下:
backup_ftp.sh,内容如下(替换为实际参数):#!/bin/bash
# FTP服务器信息
FTP_SERVER="your_ftp_server_ip"
FTP_USER="backupuser"
FTP_PASS="your_password"
REMOTE_DIR="/remote/backup/directory"
LOCAL_DIR="/local/backup/directory"
# 创建本地备份目录(若不存在)
mkdir -p "$LOCAL_DIR"
# 生成带时间戳的备份文件名
BACKUP_FILE="backup_$(date +%Y%m%d_%H%M%S).tar.gz"
# 打包本地需要备份的文件
tar -czvf "$LOCAL_DIR/$BACKUP_FILE" /path/to/source/files
# 使用lftp上传备份文件至FTP服务器
lftp -u "$FTP_USER,$FTP_PASS" "$FTP_SERVER" -e "put $LOCAL_DIR/$BACKUP_FILE -o $REMOTE_DIR/$BACKUP_FILE; bye"
chmod +x /path/to/backup_ftp.sh
crontab -e),添加以下行(例如每天凌晨2点执行):0 2 * * * /path/to/backup_ftp.sh >/dev/null 2>&1
说明:>/dev/null 2>&1用于屏蔽脚本输出,避免邮件通知。
三、注意事项
.netrc文件(权限设为600)或配置FTP服务器支持SSL/TLS加密(如vsftpd的ssl_enable=YES);/var/log/vsftpd.log),确保备份成功。