定时执行脚本


介绍

定时执行脚本是一个非常有用的功能,我们可以通过定时执行脚本实现很多场景下的自动化运维。比如:

  • 实现环境的自动化部署、升级,定时每天晚上12点自动升级测试环境;
  • 实现一些临时的自定义监控和告警,比如定时搜索指定日志中的错误并发送邮件;
  • 实现定时自动打补丁
  • 实现定时的数据备份
  • 实现自动化验收测试
  • 实现应用进程自动恢复

支持的脚本类型: 不限,只要虚拟机上操作系统支持即可,即有脚本执行需要的解释器。

注1: 最常用的的是Shell脚本和Python脚本,只要虚拟机上安装有相应的脚本解释器,并且在

脚本的第一行声明解释器,那么FIT2CLOUD就可以在虚拟机上执行脚本。

注2: 阿里云官方提供的Linux虚拟机镜像都默认安装有python,但是Ruby不一定有。如果您

打算使用puppet或chef,需要先在虚拟机中安装Ruby或者指定用已经有Ruby的虚拟机镜像启动虚拟机。

使用步骤

一、进入定时脚本列表页面

在页面最上方点击 “脚本",然后在下拉菜单中选择 “定时执行脚本” 进入定时执行脚本列表页面;

alt

二、在定时脚本列表页面,"新建"定时执行脚本任务

1. 点击"新建"按钮,进入"新建定时任务"页面。
2. 在"新建定时任务"页面,设置定时任务并保存。

alt

  • 设置任务名称
  • 选择脚本(需事先在脚本列表页面把脚本创建好)
  • 选择执行策略: 循环执行 | 执行一次
  • 设置定时执行的时间
  • 选择目标集群
  • 选择目标虚机组
  • 选择目标虚拟机
  • 保存
  • 等待定时执行

三、查看定时脚本任务日志

1. 在定时脚本任务页面, 找到想要查看的定时执行脚本任务,选择"执行记录”;

alt

2. 在执行记录页面, 查看定时任务历次执行时间和日志

alt

四、执行脚本超时处理

FIT2CLOUD默认执行脚本的超时时间是20分钟,您在编写脚本时,如果某些操作正常执行很费时,超出默认的20分钟,为防止FIT2CLOUD到默认超时时杀掉脚本进程,导致脚本不能正常执行完毕,请在脚本中将费时的操作 放到后台执行。

对于一些执行过程可能会超时的操作,您可以使用fit2cloud提供的超时命令来执行, 防止将脚本执行僵死,无法执行导致僵死的操作之后的命令。

比如df -k操作,如果某台虚拟机上挂载某NFS的共享目录,如果NFS挂了,但是目录没有正常的mount,那么df -k就会永远卡住,脚本后面的操作都无法执行,对于这种情况,您可以使用f2ctimeout来处理, 设定执行超时时间为3秒:

f2ctimeout -t 3 df -k