为什么 monit 没有正确触发 git?

Why isn't monit firing off git properly?

我有一个监视服务 运行。
它检查文件是否更改,然后触发脚本以确保文件被放入 git:

check file ncc_db with path /home/ootbdv/ncc_db/production.sqlite3
      if changed checksum then exec "/home/ootbdv/ncc_db/autocommit.sh"

我知道我已经正确设置了监视器,因为日志文件显示了这一点。

[PDT Jun  3 01:04:14] info     : 'ncc_db' checksum has not changed
[PDT Jun  3 01:10:14] error    : 'ncc_db' checksum was changed for /home/ootbdv/ncc_db/production.sqlite3
[PDT Jun  3 01:10:14] info     : 'ncc_db' exec: /home/ootbdv/ncc_db/autocommit.sh
[PDT Jun  3 01:12:14] error    : 'ncc_db' checksum was changed for /home/ootbdv/ncc_db/production.sqlite3
[PDT Jun  3 01:12:14] info     : 'ncc_db' exec: /home/ootbdv/ncc_db/autocommit.sh
[PDT Jun  3 01:14:14] info     : 'ncc_db' checksum has not changed

所以我知道 monit 正在工作。
我也知道脚本正在运行,因为作为 root,当我输入 /home/ootbdv/ncc_db/autocommit.sh 时,脚本按预期运行,它跳转到目录并触发 git 命令。

脚本:

#/bin/bash

cd /home/ootbdv/ncc_db/
git commit -a -m 'monit:autocommit'

Am I doing something wrong such that monit isn't working as expected?

看起来你的脚本是正确的,但你没有将添加的文件推送回远程存储库。

您已将文件添加到 本地存储库,现在您必须将其推送到远程存储库

脚本:

#/bin/bash

cd /home/ootbdv/ncc_db/
git commit -a -m 'monit:autocommit'
git push <origin_name> <branch_name>

问题是脚本中的header不正确;它应该读作 #!/bin/bash 而不是 #/bin/bash.

希望这对其他人有帮助。