0
systemd, automount y login

Open 2 Respuestas 18 Views

Estoy tratando de armar un script para copiar varios archivos de un server en un pendrive encriptado. La idea es que sea lo más automático posible, para que lo pueda usar hasta "doña Rosa": encuchafa el pendrive, espera que le llegue el mail diciendo que se copiaron todos los archivos, desenchufa el pendrive y listo. El script se dispara por systemd cuando detecta que se montó el pendrive de backup y lo desmonta cuando termina.

El problema que estoy teniendo es que, por algún motivo que no comprendo, cuando un usuario ingresa al sistema (vía ssh) se dispara el automount y arranca de nuevo la copia de los archivos... ¿Se puede desactivar de alguna forma? (el directorio donde se monta no es el home ni está relacionado de ninguna forma (al menos que yo sepa) con el usuario que ingresa, que puede o no ser root)

Por si sirve, el servicio systemd que definí es el siguiente:


[Unit]
Description=Copia backups ya realizados a un pendrive como almacenamiento externo
Requires=media-backup_encriptado.mount
After=media-backup_encriptado.mount

[Service]
ExecStart=/root/scripts-backup/copiarbackups/copiar_backups.sh /media/backup_encriptado 2>>/var/log/copiar_backups.err

[Install]
WantedBy=media-backup_encriptado.mount


2 Respuestas

0
Probablemente porque los automounts de systemd están pensados para ejecutarse siempre que se acceda al directorio, independientemente de si existe o no. Dos soluciones:

a) Detectá la condición en el script (hubo desmontaje antes de una nueva copia?)
b) Usá un trigger de udev, que es lo más apropiado en lugar de un automount de systemd (que está pensado para otro caso de uso).
respondido por anónimo Jun 14, 2018
1Comentarios
comentado por HacheEle (1,140 puntos) Jun 15, 2018
Seguramente están pensados para ejecutarse siempre que se acceda al directorio... lo que no entiendo es por qué se accede al directorio: yo solamente estoy ingresando al sistema, sin acceder al directorio: no es el home del usuario, es /media/backup_encriptado... no entiendo cómo se puede acceder ahí.
La versión anterior de este script usaba udev y lo pasé al automount de systemd porque eso recomendaban los artículos que leí sobre el montaje de particiones encriptadas... quizás deba volver a udev... :(
0
Con UDEV, como mencionaron antes, tenes la ventaja que podes setear el ID del device para que se ejecute el script de copia SOLO con el pendrive especifico (o marca especifica).
Metodo "Quick&Dirty":
Al arrancar el script:
[[ -z $SSH_CONNECTION ]] || echo "Abortando copia, session SSH" && exit
Para detectar la sesion ssh y salir
Pero solo te sirce para SSH, no para las sesiones interactivas de consola.
respondido por qlixed (10,630 puntos) Jun 14, 2018
1Comentarios
comentado por HacheEle (1,140 puntos) Jun 15, 2018
Es una buena alternativa... En realidad, en el server es muy poco probable que tenga conexiónes y, si las hay, son SSH...
Lo que me "molesta" es tener que hacer un "parche" por algo que no tengo idea de porqué pasa...
...