在Debian上配置FTP自动备份可以通过以下步骤实现。我们将使用vsftpd作为FTP服务器,并使用cron来设置定时任务。
首先,确保你的系统是最新的:
sudo apt update
sudo apt upgrade
然后安装vsftpd:
sudo apt install vsftpd
编辑vsftpd的配置文件:
sudo nano /etc/vsftpd.conf
确保以下配置项被正确设置:
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
保存并退出编辑器。
创建一个用于备份的用户:
sudo adduser ftpuser
sudo passwd ftpuser
按照提示设置密码。
确保FTP用户有足够的权限访问和写入备份目录:
sudo chown -R ftpuser:ftpuser /path/to/backup/directory
sudo chmod -R 755 /path/to/backup/directory
编辑当前用户的crontab文件:
crontab -e
添加一行来设置定时备份任务。例如,每天凌晨2点执行备份:
0 2 * * * /path/to/backup/script.sh >> /var/log/ftp_backup.log 2>&1
保存并退出编辑器。
创建一个备份脚本/path/to/backup/script.sh:
sudo nano /path/to/backup/script.sh
添加以下内容:
#!/bin/bash
# 设置FTP服务器信息
FTP_SERVER="ftp.example.com"
FTP_USER="ftpuser"
FTP_PASS="password"
FTP_DIR="/path/to/backup/directory"
# 设置本地备份目录
LOCAL_DIR="/local/backup/directory"
# 使用lftp进行备份
lftp -e 'mirror --reverse --delete --verbose $LOCAL_DIR $FTP_USER@$FTP_SERVER:$FTP_DIR; quit' -u $FTP_USER,$FTP_PASS ftp://$FTP_SERVER
保存并退出编辑器。
sudo chmod +x /path/to/backup/script.sh
手动运行备份脚本以确保一切正常:
/path/to/backup/script.sh
检查日志文件/var/log/ftp_backup.log以确认备份成功。
确保vsftpd服务正在运行:
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
现在,你的Debian系统将每天自动执行FTP备份任务。如果有任何问题,请检查日志文件以获取更多信息。