我正在使用 Incrond 检查文件夹中的文件更改,这会触发 Rsync 作业到我们的存储服务器。此配置是通过 Puppet 部署的,因此希望在目标路径中使用 $HOSTNAME 变量,以便它写入自己的目录。
/path/to/backup/ IN_CLOSE_WRITE,IN_CREATE,IN_MODIFY,IN_MOVED_TO,IN_CLOSE_NOWRITE /usr/bin/rsync -t --password-file=/etc/rsyncd.secrets /path/to/backup/$# rsync://rsync@STORAGESERVER/storage/$HOSTNAME/backup/$#
但是,此主机名变量在 Incrond 中不可用;并且只是将“主机名”传递到 rsync 路径中。
如何使 $HOSTNAME 变量在 Incrond 中发挥作用?
答案1
我建议解决方法:
我不会触发实际的 rsync 命令,而是让 incrond 触发包含 rsync 命令的 bash 脚本执行,并且在脚本执行期间您将在脚本环境中使用 HOSTNAME 命令。
显然,您必须先部署该脚本,但由于您使用的是 puppet,所以这应该不是困难的部分。