类别: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、创建后先手工点执行一次脚本

打赏

感谢您的赞助~

打开支付宝扫一扫,即可进行扫码打赏哦~

版权声明 : 本文未使用任何知识共享协议授权,您可以任何形式自由转载或使用。

 可能感兴趣的文章