类别:CentOS / 日期:2025-12-18 / 浏览:9 / 评论:0
宝塔面板的版本是9.0.0,宝塔安装在centos7的系统上。并命名为B服务器。
需求是:
有服务器A,也是linux系统,安装了ftp服务,共享的文件是/web。假设服务器A的ip:123.12.3.33,ftp用户名:ftpuser,ftp密码:123456。现在需要每天的00:01开始将服务器A的/web复制到宝塔服务器B的/www/wwwroot/web中。增量复制,即有修改的才复制。宝塔服务器B具体操作 如下:
1. 首先在 SSH 终端安装 lftp
# 登录 SSH 终端,安装 lftp yum install -y lftp # 验证安装 which lftp # 应该显示:/usr/bin/lftp
2. 创建同步文件夹和脚本
# 创建本地同步目录 mkdir -p /www/wwwroot/web # 创建日志目录 mkdir -p /www/logs # 创建脚本目录 mkdir -p /www/scripts # 编写脚本 vi /www/scripts/ftp_sync.sh
以下是脚本内容:
#!/bin/bash # 加载环境变量 source /etc/profile # FTP 配置(请修改以下信息) # A服务器IP或域名 FTP_HOST="123.12.3.33" # ftp用户名 FTP_USER="ftpuser" # ftp密码 FTP_PASS="123456" # 远程目录 REMOTE_DIR="/web" # 本地同步目录 LOCAL_DIR="/www/wwwroot/web" # 日志文件 LOG_FILE="/www/logs/ftp_sync.log" # 使用绝对路径执行 lftp /usr/bin/lftp -u $FTP_USER,$FTP_PASS $FTP_HOST << EOF set ftp:ssl-allow no set ftp:passive-mode yes set net:timeout 30 set net:max-retries 5 mirror --delete --verbose --parallel=3 "$REMOTE_DIR" "$LOCAL_DIR" bye EOF # 记录同步结果 if [ $? -eq 0 ]; then echo "[$(date '+%Y-%m-%d %H:%M:%S')] 同步成功" >> $LOG_FILE else echo "[$(date '+%Y-%m-%d %H:%M:%S')] 同步失败" >> $LOG_FILE fi
3. 设置脚本权限
chmod +x /www/scripts/ftp_sync.sh chmod 755 /www/scripts/ftp_sync.sh
4. 在宝塔面板添加计划任务
登录宝塔面板 → 计划任务
添加计划任务:
任务类型:选择 Shell 脚本
任务名称:填写 FTP数据同步
执行周期:根据需求选择(如:每天00:01)
脚本内容:
#!/bin/bash /bin/bash /www/scripts/ftp_sync.sh
点击 添加任务
5. 测试脚本
# 手动测试脚本 bash /www/scripts/ftp_sync.sh # 或者 sh /www/scripts/ftp_sync.sh # 查看日志 tail -f /www/logs/ftp_sync.log
6、创建后先手工点执行一次脚本
