date: 2020-09-20title: jiacrontab——集中化管理计划任务 #标题
tags: jiacrontab #标签
categories: linux大杂烩 # 分类

发现个新鲜玩意,用于集中化管理任务计划,项目地址: 码云
官方文档内容较少,也可能是此项目上手比较简单的问题吧,还是用一篇文章来写下这个小东西。

部署jiacrontab-admin

  1. # 下载
  2. $ wget https://jiacrontab.iwannay.cn/download/jiacrontab-v2.0.5-linux-amd64.zip
  3. # 解压
  4. $ unzip jiacrontab-v2.0.5-linux-amd64.zip -d /opt/
  5. # 查看解压后的文件
  6. $ cd /opt/jiacrontab/
  7. $ ls
  8. jiacrontab_admin jiacrontabd
  9. # 其中,我们只需要jiacrontab_admin这个目录
  10. # 而jiacrontabd这个是客户端,要在所有接入jiacrontab-admin的节点上部署
  11. # 进入admin目录
  12. $ cd /opt/jiacrontab/jiacrontab_admin/
  13. # 修改配置文件(也可以保持默认)
  14. $ egrep -v '^;|^$' jiacrontab_admin.ini # 修改如下
  15. [app]
  16. http_listen_addr = 0.0.0.0:20000 # web访问端口
  17. rpc_listen_addr = :20003 # 与client端通信端口
  18. app_name = jiacrontab
  19. signing_key = `WERRTT1234$@#@@$`
  20. log_level = warn
  21. max_client_alive_interval = 30
  22. [jwt]
  23. signing_key = eyJhbGciOiJIUzI1
  24. expires = 3600
  25. name = token
  26. [mail] # 自行配置下mail相关配置
  27. enabled = true
  28. host = smtp.163.com:25
  29. user = lv916551516@163.com
  30. skip_verify = true
  31. passwd = xxxxxx
  32. from = lv916551516@163.com
  33. use_certificate = false
  34. [database]
  35. driver_name = sqlite3
  36. dsn = data/jiacrontab_admin.db?cache=shared
  37. # 准备systemd文件(如果你的程序部署部署在/opt目录下,那么请自行修改相关路径)
  38. # 非必须,亦可以将/opt/jiacrontab/jiacrontab_admin/jiacrontab_admin 命令直接放到后台运行。
  39. $ cat > /usr/lib/systemd/system/jiacrontab_admin.service << EOF
  40. [Unit]
  41. Description=jiacrontab_admin service
  42. After=network.target
  43. [Install]
  44. WantedBy=multi-user.target
  45. [Service]
  46. Type=simple
  47. User=root
  48. Group=root
  49. ProtectSystem=full
  50. WorkingDirectory=/opt/jiacrontab/jiacrontab_admin
  51. ExecStart=/opt/jiacrontab/jiacrontab_admin/jiacrontab_admin
  52. KillMode=process
  53. KillSignal=SIGTERM
  54. SendSIGKILL=no
  55. Restart=on-abort
  56. RestartSec=5s
  57. UMask=007
  58. EOF
  59. # 启动jiacrontab管理端
  60. $ systemctl daemon-reload
  61. $ systemctl start jiacrontab_admin
  62. # 确认端口在监听
  63. $ ss -lnput | egrep '20000|20003'
  64. tcp LISTEN 0 128 *:20003 *:* users:(("jiacrontab_admi",pid=16563,fd=5))
  65. tcp LISTEN 0 128 :::20000 :::* users:(("jiacrontab_admi",pid=16563,fd=6))

部署jiacrontab-client端

  1. $ cd /opt/jiacrontab/jiacrontabd/
  2. $ egrep -v '^;|^$' jiacrontabd.ini # 修改配置文件如下
  3. # 其实在配置文件中的注释已经用中文解释的很清楚了,自己看着改吧
  4. [jiacrontabd]
  5. verbose_job_log = true
  6. listen_addr = :20001
  7. boardcast_addr = 192.168.20.10:20001
  8. admin_addr = 192.168.20.10:20003
  9. auto_clean_task_log = true
  10. log_level = warn
  11. log_path = ./logs
  12. user_agent = jiacrontabd
  13. driver_name = sqlite3
  14. dsn = data/jiacrontabd.db?cache=shared
  15. client_alive_interval = 10
  16. # 准备systemd文件(同样,如果你的jiacrontab不是在/opt目录下,那么自己看着改吧)
  17. # 非必须,亦可以将/opt/jiacrontab/jiacrontabd/jiacrontabd 命令直接放到后台运行。
  18. $ cat > /usr/lib/systemd/system/jiacrontabd.service << EOF
  19. [Unit]
  20. Description=jiacrontabd service
  21. After=network.target
  22. [Install]
  23. WantedBy=multi-user.target
  24. [Service]
  25. Type=simple
  26. User=root
  27. Group=root
  28. ProtectSystem=full
  29. WorkingDirectory=/opt/jiacrontab/jiacrontabd
  30. ExecStart=/opt/jiacrontab/jiacrontabd/jiacrontabd
  31. KillMode=process
  32. KillSignal=SIGTERM
  33. SendSIGKILL=no
  34. Restart=on-abort
  35. RestartSec=5s
  36. UMask=007
  37. EOF
  38. # 启动jiacrontab客户端
  39. $ systemctl daemon-reload
  40. $ systemctl start jiacrontabd
  41. # 确认端口在监听
  42. $ ss -lnptu | grep 20001
  43. tcp LISTEN 0 128 *:20001 *:* users:(("jiacrontabd",pid=16624,fd=6))

至此,程序就部署完了,之后如果需要管理多个机器的计划任务,只需在被管理端,按照上面过程,装上jiacrontab-client端即可。(clinet端和admin端,都是在文中开头的wget链接中下载的,下载后解压即可看到admin端和客户端)。

访问admin管理页面

访问adminIP+20000端口,即可看到如下页面:

以下是第一次登录,初始化一个账号和密码(自定义即可),以及邮箱信息。

jiacrontab——集中化管理计划任务 - 图1

然后就可以看到其登录页了,如下(输入刚刚初始化时创建的账号和密码进行登录即可):

别说,这个登录首页做的还是蛮骚气的。

jiacrontab——集中化管理计划任务 - 图2

欧克,登录上来了,如下:

jiacrontab——集中化管理计划任务 - 图3

好了,至此也算初见成效了,剩下的自己玩吧。