Quiero ejecutar un script bash cuando termina una connection scp

Estoy construyendo un server que acepta conexiones scp y luego agrega los files que acaban de ser transferidos a un repository de git. He probado el script .bash_logout y no se ejecuta cuando termina la session scpd. ¿Hay otro gancho que pueda usar para ejecutar un script cuando scpd se cierre?

Alternativamente, puedo usar el command (1) en el file .bashrc para ejecutar el script que hace el trabajo, por ejemplo, 5 minutos después. Creo, pero no estoy seguro, que no tengo que preocuparme por las carreras porque creo que los files llegarán con poca frecuencia.

Gracias

Si scp siempre copy al mismo lugar, entonces esta forma de aproximación funcionará. Tiene la ventaja añadida de que copyr a través de samba, CIFS, etc … también funcionará.

Además, podría engendrar el guión de shell inotifywait desde el nodo nohup para que se ejecute después de que el shell salga. El otro sería iniciar un process en el momento del arranque para monitorear el directory usando inotifywait y usarlo para agregarlo a git.

Por supuesto, podría simplemente configurar un server de git, pero supongo que hay una buena razón que no es deseable.

inotifywait

inotifywait puede activarse a partir de cambios en un directory.

Puede esperar cambios, adiciones, movimientos en un directory

if inotifywait -e modify -e move -e create -r somedirectory ; then # wait wile more activity occurs, up to 30 seconds while inotifywait -e modify -e move -e create -t 30 -r somedirectory ; do echo "waiting" ; done # do git add with the new files in somedirectory # delete the files from somedirectory fi 

Podría ejecutar este script como cronjob:

 #!/bin/sh targetdir="whereever your files are going" [ "$targetdir" -nt "~/flag" ] && your_script.sh touch ~/flag 
    Intereting Posts