当前位置: 首页 > news >正文

Jenkins数据备份到windows FTP服务器

文章目录

    • 背景
    • 1. 安装配置 FileZilla Server(Windows)
      • 1.1 下载并安装 FileZilla Server
      • 1.2 配置 FTP 用户和共享目录
    • 2. 安装并配置 FTP 客户端(CentOS)
      • 2.1 在 CentOS 安装 lftp
    • 3. 编写 Jenkins 备份脚本
      • 3.1 赋予执行权限
      • 3.2 测试执行
    • 4. 配置定时任务(Crontab)
      • 4.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 Server(Windows)

在 Windows 上安装并配置 FileZilla Server 以接收 Jenkins 备份数据。

1.1 下载并安装 FileZilla Server

  • 下载 FileZilla Server 0.9.60.2 中文安装版
  • 安装并启动 FileZilla Server,弹出配置窗口:
    • 主机localhost
    • 密码:留空,直接连接

1.2 配置 FTP 用户和共享目录

  1. 添加用户(用于 CentOS 连接 FTP 服务器上传文件)
  2. 设置共享目录,假设目录路径为 F:\FileZillaServer,用于存放备份数据。

最终,FTP 服务器上的 Jenkins 备份目录路径为:

F:\FileZillaServer\jenkins_home

2. 安装并配置 FTP 客户端(CentOS)

2.1 在 CentOS 安装 lftp

sudo yum update -y  # 更新系统(CentOS 7/8)
sudo yum install -y lftp

3. 编写 Jenkins 备份脚本

在 CentOS 服务器上创建 backup_jenkins_ftp.sh,用于定期同步 Jenkins 数据到 FTP 服务器。

#!/bin/bash# FTP 配置
FTP_HOST="xxx.22.212.xx"
FTP_USER="autotest"
FTP_PASS="autotest"
FTP_TARGET_DIR="jenkins_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
fi

3.1 赋予执行权限

chmod +x backup_jenkins_ftp.sh

3.2 测试执行

sudo ./backup_jenkins_ftp.sh

4. 配置定时任务(Crontab)

为了实现自动备份,我们使用 crontab 定时执行脚本。

4.1 编辑 Crontab 任务

crontab -e

添加以下任务,每天凌晨 2 点执行备份:

0 2 * * * /home/xxx/jenkins/backup_jenkins_ftp.sh

4.2 重启 Crontab 服务(适用于部分系统)

sudo systemctl restart crond

4.3 确认定时任务是否生效

crontab -l

5. 可能遇到的问题及解决方案

5.1 脚本执行时报

'': command not found 该问题通常是由于脚本文件包含 Windows 换行符 (\r\n),而 Linux 只支持 \n 造成的。

解决方法:转换文件格式

dos2unix backup_jenkins_ftp.sh

如果 dos2unix 未安装,可用 sed 命令处理:

sed -i 's/\r$//' backup_jenkins_ftp.sh

5.2 权限问题

若执行时遇到权限不足的错误,可尝试:

sudo chmod +x backup_jenkins_ftp.sh
sudo chmod 666 /var/log/jenkins_ftp_backup.log

5.3 FTP 连接失败

  1. 检查 FTP 服务器是否开启

    telnet 172.22.212.25 21
    

    如果连接失败,需检查 Windows 上 FileZilla Server 是否正常运行。

  2. 检查防火墙是否开放 21 端口

    sudo firewall-cmd --add-port=21/tcp --permanent
    sudo firewall-cmd --reload
    

6. 总结

通过以上步骤,我们完成了 Jenkins 备份到 Windows FTP 服务器的自动化流程,主要包括:

  1. 在 Windows 上安装 FileZilla Server 作为 FTP 服务器。
  2. 在 CentOS 上安装 lftp 并编写同步脚本。
  3. 配置 Crontab 实现每日自动备份。
  4. 处理常见问题,确保备份流程稳定运行。

🎯 至此,Jenkins 数据将每日自动备份至 Windows FTP 服务器,确保数据安全可靠! 🚀

Reference:FileZilla Server/Client 的简单使用-CSDN博客

http://www.lryc.cn/news/534306.html

相关文章:

  • 【R语言】卡方检验
  • ASP.NET Core托管服务
  • HarmonyOS 5.0应用开发——全局自定义弹出框openCustomDialog
  • 如何在C++ QT 程序中集成cef3开源浏览器组件去显示网页?
  • 深入讲解MyBatis
  • 使用matlab 对传递函数分析bode图和阶跃函数
  • 2025牛客寒假算法基础集训营5(补题)
  • FaceFusion如何设置公开链接和端口
  • 神经网络常见激活函数 6-RReLU函数
  • 计算机网络面经
  • Qt:常用控件
  • 算法设计-找第二大数(C++)
  • 【C++高并发服务器WebServer】-14:Select详解及实现
  • redis项目
  • Spring统一修改RequestBody
  • NCV4275CDT50RKG 车规级LDO线性电压调节器芯片——专为新能源汽车设计的高可靠性电源解决方案
  • 前端开发架构师Prompt指令的最佳实践
  • 【AI实践】Windsurf AI编程voice对话应用
  • 【自学笔记】文言一心的基础知识点总览-持续更新
  • kafka消费端之消费者协调器和组协调器
  • 线上hbase rs 读写请求个数指标重置问题分析
  • DeepSeek-R1 本地电脑部署 Windows系统 【轻松简易】
  • 数据库,数据表的增删改查操作
  • VUE 集成企微机器人通知
  • 《Java核心技术 卷II》Java平台的脚本机制
  • Ollama + AnythingLLM + Deepseek r1 实现本地知识库
  • 记录 | WPF基础学习Style局部和全局调用
  • PromptSource安装报错
  • Leetcode 3448. Count Substrings Divisible By Last Digit
  • Maven 下载与配置教程:附百度网盘地址