Jenkins是否可以在特定时间在特定服务器上运行命令?例如:
on jenkins@apache-server01i at 10:00 ./stress-ng --cpu 8 --cpu-load 100 --timeout 10m
on jenkins@tomcat-server01i at 11:30 systemctl stop tomcat
on jenkins@tomcat-server01i at 11:35 systemctl start tomcat
on jenkins@mysql-server01i at 13:00 systemctl restart mysqld
是否有此工作的插件?
2条答案
按热度按时间1cklez4t1#
不是真正的Jenkins打算使用的方式;最好直接使用
cron
。否则,使用cron触发器
triggers { cron('0 30 * * *') }
和标记为匹配的代理设置作业:agent { node { label 'labelName' } }
您可以在10开始运行一个作业,并使用sleep阶段。
uurv41yg2#
使用jenkins服务器作为一个美化的cron不是一个坏主意,你可以更好地了解正在运行的作业和一个需要监控的地方,你可以挂接其他插件来通知你失败。
它可以很好地用于服务器重启、备份作业、日志循环或文件处理作业、自定义服务监控测试……
你确实引入了一个失败的来源,如果网络或ssh连接到主机失败,那么你的命令就会失败。
有两种方法可以做到这一点:
1.使用jenkins Execute Shell插件。从jenkins -〉host交换ssh密钥并允许ssh访问,并且可能在主机端配置sudo以允许特定命令运行。
1.使用jenkins中配置的控制ssh auth的插件,例如“使用ssh在远程主机上执行shell脚本”