在monit文档中,我可以看到有一个检查目录命令,但是我看不到有关如何使用它来查看目录是否存在以及是否不使用mkdir命令创build目录的任何示例。
这适用于我:
check directory my_path path /mnt/some_mount_point if does not exist then exec "/usr/local/bin/create_mnt.sh"
这可能会帮助你mkdir -p $directory
应该做你想做的。 -p
选项将创build任何必要的父目录。 如果$directory
已经作为一个目录存在,那么这个命令什么都不做,并且成功。 如果$目录是一个普通的文件,它将保持不变,nd不会失败,如果该目录已经存在,所以你可以一次完成:
mkdir -p / some / directory / you / want / to / exist || 出口1
亚历克很有它,但你不需要创build一个脚本来做到这一点。 你可以直接运行mkdir
(尽pipe注意你需要完整的path):
check directory my_path path /mnt/some_mount_point if does not exist then exec "/bin/mkdir /mnt/some_mount_point"
根据您的path,如果您需要子文件夹和/或重复的错误抑制,则可以将-p
开关添加到mkdir。
不需要创build单独的脚本,您需要使用带-c
选项的bash
:
check directory my_path path /some/path/to/dir if does not exist then exec "/bin/bash -c 'mkdir -p /some/path/to/dir'" as uid <some_user> and gid <some_group>
monit
进程是从root用户运行的,所以要确保你没有以root身份创build目录(据说你不需要这样做)然后你可以杀死monit
进程并在前台启动
monit -Ivv
并查看输出debugging说明。 一旦没有错误,你可以停止在前台与Cc monit
,并像往常一样开始Deamon过程。
希望这可以帮助。