Redireciona a saída para o arquivo de log enquanto usa 'flock'

0

Eu tenho um script bash como este:

test.sh

#!/bin/bash

locks="/var/lock/userlocks"
lock='basename "$0"'.exclusivelock

(
flock -x -w 5 200 || { echo "exiting. $lock already in use."; exit 1; }
echo "$lock acquired."
#do stuff

) 200>$locks/$lock

Eu posso enviar toda a saída para um arquivo de log assim:

$ test.sh >> logfile.log 2>&1

Mas eu poderia colocar esse redirecionamento de saída no script desse jeito?

test2.sh

#!/bin/bash

locks="/var/lock/userlocks"
lock='basename "$0"'.exclusivelock

(
flock -x -w 5 200 || { echo "exiting. $lock already in use."; exit 1; }
echo "$lock acquired."
#do stuff

) 200>$locks/$lock >> logfile.log 2>&1

Agora, chame o script sem precisar redirecionar.

$ test2.sh
    
por Buttle Butkus 28.06.2017 / 03:45

1 resposta

0

Sim. (Acabei de executar uma versão simplificada do seu script)

Da próxima vez, tente antes de perguntar?

O script simplificado em questão:

#!/bin/bash

lock=exclusivelock

(
flock -x -w 5 200 || { echo "exiting. $lock already in use."; exit 1; }
echo "$lock acquired."

) 200>$$lock >> logfile.log 2>&1
    
por 28.06.2017 / 04:54