在 Jenkins 里“定时运维服务器”,本质上是用 Jenkins 做任务调度 + 执行运维脚本/命令。下面按“能落地”的方式给你讲。
Jenkins 本身不是运维工具,而是调度中心:
Jenkins 定时触发 → 登录服务器(或 agent) → 执行 Shell / Ansible / Python 脚本 → 完成运维动作
常见运维场景:
示例:
H 2 * * * # 每天凌晨2点
H 3 * * 1 # 每周一凌晨3点
*/30 * * * * # 每30分钟
H是 Jenkins 的“哈希随机”,避免所有任务同时跑
在 Build → Execute shell 中写:
#!/bin/bash
# 清理日志
find /var/log -name "*.log" -mtime +7 -delete
# 重启服务
systemctl restart nginx
# 磁盘检查
df -h | mail -s "Disk Report" admin@company.com
✅ 适合:单台服务器、简单任务
优点:
插件:
配置:
Job 中:
df -h
systemctl status docker
Build Step → Execute shell
ansible all -m shell -a "df -h"
ansible web -m systemd -a "name=nginx state=restarted"
或执行 playbook:
ansible-playbook clean_logs.yml
✅ 企业级标准方案
find /data/logs -name "*.log" -mtime +30 -delete
THRESHOLD=90
Usage=$(df / | awk 'NR==2 {print $5}' | sed 's/%//')
if [ $Usage -gt $THRESHOLD ]; then
echo "Disk full" | mail -s "Alert" ops@company.com
fi
if ! systemctl is-active --quiet nginx; then
systemctl restart nginx
fi
❌ 秒级任务
❌ 高并发实时监控
❌ 替代 Zabbix / Prometheus
更适合:
| 场景 | 方案 |
|---|---|
| 单台服务器 | Jenkins + Shell |
| 多台服务器 | Jenkins + SSH |
| 企业运维 | Jenkins + Ansible |
| 监控告警 | Prometheus + Alertmanager |
如果你愿意,可以告诉我:
我可以直接帮你写 可用 Jenkins Job 配置 + 脚本。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。