ubuntu

怎样在Ubuntu上配置FTP自动备份

小樊
39
2025-09-21 21:26:32
栏目: 智能运维

在Ubuntu上配置FTP自动备份的完整步骤

1. 安装FTP服务器(以vsftpd为例)

首先确保系统已安装vsftpd(轻量级FTP服务器),通过以下命令安装:

sudo apt update
sudo apt install vsftpd

2. 配置FTP服务器

编辑vsftpd配置文件(/etc/vsftpd.conf),调整以下关键参数以保障安全性和功能性:

sudo nano /etc/vsftpd.conf

需设置的参数

保存并退出编辑器后,重启vsftpd服务使配置生效:

sudo systemctl restart vsftpd
sudo systemctl enable vsftpd  # 设置开机自启

3. 创建备份目录

选择本地或FTP服务器上的目录作为备份存储位置(以本地/backup/ftp为例):

sudo mkdir -p /backup/ftp
sudo chown ftpuser:ftpuser /backup/ftp  # 将目录所有者设为FTP用户(如ftpuser)
sudo chmod 755 /backup/ftp  # 设置目录权限(所有者可读写,其他用户只读)

4. 编写自动备份脚本

创建备份脚本(如/usr/local/bin/backup_ftp.sh),使用tar命令打包源目录并压缩为.tar.gz文件,同时添加日志记录和旧备份清理功能:

sudo nano /usr/local/bin/backup_ftp.sh

脚本内容示例(需替换SOURCE_DIR为实际源目录):

#!/bin/bash
# 定义变量
SOURCE_DIR="/path/to/your/data"  # 需备份的源目录(如/home/user/Documents)
BACKUP_DIR="/backup/ftp"         # 本地备份存储目录
DATE=$(date +"%Y%m%d_%H%M%S")    # 当前日期时间(用于生成唯一备份文件名)
BACKUP_FILE="$BACKUP_DIR/ftp_backup_$DATE.tar.gz"  # 备份文件名
LOG_FILE="/var/log/ftp_backup.log"  # 备份日志文件

# 记录备份开始时间
echo "===== 备份开始: $DATE =====" >> $LOG_FILE

# 执行备份(打包并压缩源目录)
tar -czvf $BACKUP_FILE $SOURCE_DIR 2>> $LOG_FILE  # 2>> 将错误信息追加到日志

# 检查备份是否成功
if [ $? -eq 0 ]; then
    echo "备份成功: $BACKUP_FILE" >> $LOG_FILE
else
    echo "备份失败,请检查日志" >> $LOG_FILE
fi

# 删除7天前的旧备份(保留最近7天)
find $BACKUP_DIR -type f -name "ftp_backup_*.tar.gz" -mtime +7 -exec rm -f {} \; 2>> $LOG_FILE
echo "旧备份清理完成" >> $LOG_FILE
echo "===== 备份结束: $(date +"%Y-%m-%d %H:%M:%S") =====" >> $LOG_FILE

保存并退出编辑器后,赋予脚本执行权限:

sudo chmod +x /usr/local/bin/backup_ftp.sh

5. 设置Cron定时任务

使用crontab配置定时执行备份脚本(如每天凌晨2点执行):

crontab -e

在文件末尾添加以下行(0 2 * * *表示每天凌晨2点):

0 2 * * * /usr/local/bin/backup_ftp.sh >/dev/null 2>&1

说明

6. 验证配置

注意事项

0
看了该问题的人还看了