Isso funciona para mim:
check directory my_path path /mnt/some_mount_point
if does not exist then exec "/usr/local/bin/create_mnt.sh"
Na documentação do monit, vejo que há um comando check directory, mas não consigo ver nenhum exemplo de como usá-lo para ver se o diretório existe e se não cria o diretório usando o comando mkdir.
Isso funciona para mim:
check directory my_path path /mnt/some_mount_point
if does not exist then exec "/usr/local/bin/create_mnt.sh"
Isso pode ajudar você. mkdir -p $directory
deve fazer o que quiser. A opção -p
criará qualquer diretório pai necessário. Se $directory
já existir como um diretório, o comando não fará nada e será bem-sucedido. Se $ directory for um arquivo regular, ele permanecerá intocado, nd não falhará se o diretório já existir, então você pode fazer tudo de uma vez com:
mkdir -p /some/directory/you/want/to/exist || exit 1
Alec praticamente tem, mas você não precisa criar um script para fazer isso. Você pode executar mkdir
diretamente (embora note que você precisa do caminho completo para ele):
check directory my_path path /mnt/some_mount_point
if does not exist then exec "/bin/mkdir /mnt/some_mount_point"
Dependendo do seu caminho, pode ser útil adicionar a opção -p
ao mkdir se você precisar de subpastas e / ou supressão de erros duplicados.
Não é necessário criar script separado, você precisa usar bash
com -c
option:
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>
O processo monit
é executado a partir do usuário root, portanto, certifique-se de não criar diretórios como raiz (supostamente não precisa disso)
E então você pode matar monit
process e iniciá-lo em primeiro plano com
monit -Ivv
e veja as notas de depuração de saída. Uma vez que não há erros, você pode parar monit
em primeiro plano com C-c e iniciá-lo normalmente.
Espero que isso ajude.
Tags monitoring mkdir monit