怀化百度整站优化服务,企业网站推广哪个公司好,富阳网站定制开发哪家公司好,济南突然宣布文章目录 背景1. 安装配置 FileZilla Server#xff08;Windows#xff09;1.1 下载并安装 FileZilla Server1.2 配置 FTP 用户和共享目录 2. 安装并配置 FTP 客户端#xff08;CentOS#xff09;2.1 在 CentOS 安装 lftp 3. 编写 Jenkins 备份脚本3.1 赋予执行权限3.2 测试… 文章目录 背景1. 安装配置 FileZilla ServerWindows1.1 下载并安装 FileZilla Server1.2 配置 FTP 用户和共享目录 2. 安装并配置 FTP 客户端CentOS2.1 在 CentOS 安装 lftp 3. 编写 Jenkins 备份脚本3.1 赋予执行权限3.2 测试执行 4. 配置定时任务Crontab4.1 编辑 Crontab 任务4.2 重启 Crontab 服务适用于部分系统4.3 确认定时任务是否生效 5. 可能遇到的问题及解决方案5.1 脚本执行时报5.2 权限问题5.3 FTP 连接失败 6. 总结 背景
在 CentOS 上搭建了 Jenkins 服务为了防止意外丢失数据我们需要定期备份 Jenkins 数据。本方案采用 FileZilla Server 作为 FTP 服务器并使用 lftp 进行数据同步。 1. 安装配置 FileZilla ServerWindows
在 Windows 上安装并配置 FileZilla Server 以接收 Jenkins 备份数据。
1.1 下载并安装 FileZilla Server
下载 FileZilla Server 0.9.60.2 中文安装版安装并启动 FileZilla Server弹出配置窗口 主机localhost密码留空直接连接
1.2 配置 FTP 用户和共享目录
添加用户用于 CentOS 连接 FTP 服务器上传文件设置共享目录假设目录路径为 F:\FileZillaServer用于存放备份数据。
最终FTP 服务器上的 Jenkins 备份目录路径为
F:\FileZillaServer\jenkins_home2. 安装并配置 FTP 客户端CentOS
2.1 在 CentOS 安装 lftp
sudo yum update -y # 更新系统CentOS 7/8
sudo yum install -y lftp3. 编写 Jenkins 备份脚本
在 CentOS 服务器上创建 backup_jenkins_ftp.sh用于定期同步 Jenkins 数据到 FTP 服务器。
#!/bin/bash# FTP 配置
FTP_HOSTxxx.22.212.xx
FTP_USERautotest
FTP_PASSautotest
FTP_TARGET_DIRjenkins_home # Windows FTP 服务器上的目标目录映射到 F:\FileZillaServer\jenkins_home# Jenkins 数据目录CentOS
SOURCE_DIR/var/jenkins_home# 日志文件
LOG_FILE/var/log/jenkins_ftp_backup.log# 使用 lftp 进行文件同步
lftp -u $FTP_USER,$FTP_PASS $FTP_HOST EOF
set ftp:ssl-allow no # 如果 FTP 服务器不支持 SSL则禁用 SSL
mirror -R $SOURCE_DIR $FTP_TARGET_DIR # 递归同步 Jenkins 目录到 FTP 服务器
quit
EOF# 记录日志
if [ $? -eq 0 ]; thenecho $(date %Y-%m-%d %H:%M:%S) - 备份成功 $LOG_FILE
elseecho $(date %Y-%m-%d %H:%M:%S) - 备份失败 $LOG_FILE
fi3.1 赋予执行权限
chmod x backup_jenkins_ftp.sh3.2 测试执行
sudo ./backup_jenkins_ftp.sh4. 配置定时任务Crontab
为了实现自动备份我们使用 crontab 定时执行脚本。
4.1 编辑 Crontab 任务
crontab -e添加以下任务每天凌晨 2 点执行备份
0 2 * * * /home/xxx/jenkins/backup_jenkins_ftp.sh4.2 重启 Crontab 服务适用于部分系统
sudo systemctl restart crond4.3 确认定时任务是否生效
crontab -l5. 可能遇到的问题及解决方案
5.1 脚本执行时报
: command not found 该问题通常是由于脚本文件包含 Windows 换行符 (\r\n)而 Linux 只支持 \n 造成的。
解决方法转换文件格式
dos2unix backup_jenkins_ftp.sh如果 dos2unix 未安装可用 sed 命令处理
sed -i s/\r$// backup_jenkins_ftp.sh5.2 权限问题
若执行时遇到权限不足的错误可尝试
sudo chmod x backup_jenkins_ftp.sh
sudo chmod 666 /var/log/jenkins_ftp_backup.log5.3 FTP 连接失败 检查 FTP 服务器是否开启 telnet 172.22.212.25 21如果连接失败需检查 Windows 上 FileZilla Server 是否正常运行。 检查防火墙是否开放 21 端口 sudo firewall-cmd --add-port21/tcp --permanent
sudo firewall-cmd --reload6. 总结
通过以上步骤我们完成了 Jenkins 备份到 Windows FTP 服务器的自动化流程主要包括
在 Windows 上安装 FileZilla Server 作为 FTP 服务器。在 CentOS 上安装 lftp 并编写同步脚本。配置 Crontab 实现每日自动备份。处理常见问题确保备份流程稳定运行。 至此Jenkins 数据将每日自动备份至 Windows FTP 服务器确保数据安全可靠
ReferenceFileZilla Server/Client 的简单使用-CSDN博客