Como configuro um script monit para verificar se existe um diretório e criá-lo se ele não existir?

1

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.

    
por Paul Sturgess 20.10.2010 / 10:47

4 respostas

6

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"
    
por 17.02.2011 / 23:41
2

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

    
por 21.07.2014 / 15:34
0

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.

    
por 21.07.2014 / 14:47
0

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.

    
por 28.10.2015 / 16:12