如何设置一个monit脚本来检查一个目录是否存在,如果不存在则创build它

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过程。

希望这可以帮助。