[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: / plena



Jo no tinc massa idea de bash, però aquesta comanda me l'he guardada
perquè em sembla molt xula: com condensar en una línia diverses
opcions...

El Tue, 11 May 2021 16:51:28 +0200
Eloi <entfe001@gmail.com> va escriure:

> El 11/5/21 a les 16:21, Narcis Garcia ha escrit:
> > Si l'eina de còpies de seguretat l'has fet tu mateix, al disc de
> > còpies hi pots posar un fitxer de reconeixement. Per exemple
> > «.cseguretat» D'aquesta manera, abans d'executar la còpia el teu
> > programet pot mirar si hi ha el fitxer, de la qual cosa deduir si
> > el dispositiu està muntat o no:
> >
> > if [ ! -f /mnt/copies.seguretat_2/.cseguretat ] ; then
> > 	echo "No s'ha trobat el disc de còpies!"
> > 	exit 1
> > fi
> >
> > Si no és així, caldria saber quin programari utilitzes per a fer
> > còpies.  
> 
> No cal crear cap fitxer testimoni, es pot emprar l'eina findmnt, per 
> exemple així:
> 
> findmnt --mountpoint /mnt/copies.seguretat_2 >/dev/null || mount 
> /mnt/copies.seguretat_2 && comanda_backup
> 
> Per parts:
> 
> findmnt amb --mountpoint determina si el directori és un punt de 
> muntatge actiu. Si ho és, torna dades del mateix (per això
> redirecciono a /dev/null) i retorna 0; en cas contrari, retorna 1.
> 
> || mount /mnt/copies.seguretat_2 intenta muntar el dispositiu si i
> només si la comanda anterior ha fallat, és a dir, si el dispositiu no
> està muntat. Que funcioni dependrà de si l'usuari que executa la
> comanda pot muntar el dispositiu i de si aquest es troba disponible,
> sempre que estigui prèviament configurat a /etc/fstab
> 
> && comanda_backup s'executarà si alguna de les dues comandes
> anteriors ha tingut èxit, aquí hauràs de posar el que sigui que facis
> servir per llençar la còpia de seguretat.
> 
> Recapitulant possibles escenaris:
> 
> 1. El disc està muntat: findmnt torna 0 (èxit), mount no s'executa
> per || i el backup s'executa per &&
> 2. El disc està present però sense muntar: findmnt torna 1 (error), 
> mount s'executa per || i un cop muntat amb èxit (0) el disc finalment 
> s'executa el backup per &&
> 3. El disc no està present (o no es disposa de permisos per
> muntar-lo): findmnt torna 1 (error), mount s'executa per || però
> també falla i el backup no s'executa
> 
> Si vols afegir una acció alternativa per si la còpia no s'engega (o
> si el propi procés de còpia falla) sempre pots afegir al final una 
> nova 
> ordre precedida per ||, per exemple (resumint crides sense
> paràmetres):
> 
> findmnt || mount && backup || error
> 
> on findmnt i mount són tal com he descrit abans, 'backup' és el 
> teu 
> programa de còpia de seguretat i 'error' l'acció que vulguis executar
> si falla la còpia.
> 
> L'avantatge de fer-ho en format de comanda monolínia és que pots 
> posar-la directament al crontab sense necessitar cap script
> intermediari.
> 
> 



-- 
Joan Cervan i Andreu
http://personal.calbasi.net

"El meu paper no és transformar el món ni l'home sinó, potser, el de
ser útil, des del meu lloc, als pocs valors sense els quals un món no
val la pena viure'l" A. Camus

i pels que teniu fe:
"Déu no és la Veritat, la Veritat és Déu"
Gandhi


Reply to: