Come di solito accade, a causa della mia modesta conoscenza di bash ho problemi nella realizzazione di script apparentemente banali.
I presupposti sono questi: Ho una cartella della quale vorrei fare un backup sulla pen drive se clicco sul pulsante di un lanciatore che ho realizzato.
La parte inerente il lanciatore funziona regolarmente.
La cartella è composta da una grande quantità di files, ma ognuno di questi è di una dimensione modesta, tipicamente 10 kB.
Il problema è che l'intera sequenza di backup, che nel dettaglio è così composta: entro nella pen Drive tramite una comunissima "Change Directory", e cerco se esiste una versione precedente della cartella, il cui nome non cambia mai e, se esiste, la elimina per intero.
Torno poi nel percorso dove si trova la cartella da copiare, qui dò il comando di copia ma, questo comando impiega un intervallo di tempo insolitamente lungo per copiare questi files, dunque la domanda: Esiste un modo per tracciare quale processo impiega più temo del dovuto?
Sessanta secondi mi sembrano troppi per copiare questi files:
Codice: Seleziona tutto
totale 212K
drwxr-xr-x 3 leonardo leonardo 4,0K mag 9 19:11 .
drwxrwxrwx 3 leonardo leonardo 4,0K mag 5 18:56 ..
-rwxr-xr-x 1 leonardo leonardo 1,6K mag 6 15:15 Assembla.sh
-rw-r--r-- 1 leonardo leonardo 272 mag 3 09:58 Cose da fare
drwxr-xr-x 8 leonardo leonardo 4,0K mag 8 20:42 .git
-rw-r--r-- 1 leonardo leonardo 105 mag 2 15:14 .gitignore
-rwxrwxrwx 1 leonardo leonardo 176 mag 6 14:59 LinkerScript.ld
-rwxrwxrwx 1 leonardo leonardo 14K mag 8 20:42 main2.s
-rw-r--r-- 1 leonardo leonardo 16K mag 9 19:11 .main2.s.swp
-rwxrwxrwx 1 leonardo leonardo 2,4K mag 9 19:11 Makefile
-rwxrwxrwx 1 leonardo leonardo 420 mag 9 18:49 RimuoviAssemblati.sh
-rwxr-xr-x 1 leonardo leonardo 64K mag 3 14:25 SequenzaInizializzazione_backup.s
-rwxrwxrwx 1 leonardo leonardo 64K mag 4 19:05 SequenzaInizializzazione.s
-rwxr-xr-x 1 leonardo leonardo 14K mag 3 11:26 Spiegazione linker e sequenza di avvioCodice: Seleziona tutto
#!/bin/bash
if [ -d /media/leonardo/MICRODRIVE ]; then
if [ -f /media/leonardo/MICRODRIVE/stm32-assembly-repository ]; then
rm -R /media/leonardo/MICRODRIVE/stm32-assembly-repository;
fi;
cp -R /home/leonardo/MioArchivio/CortexBuildDir/Sorgenti/BitBucketSTM32-Sources/stm32-assembly-repository /media/leonardo/MICRODRIVE;
if [ $? ]; then
notify-send 'Copia completata' 'Copia sorgenti Stm32 completata correttamente su Microdrive';
fi
else
notify-send 'Attenzione' 'Pen drive non inserita'
fi
Codice: Seleziona tutto
/dev/sdb1 /media/leonardo/MICRODRIVE vfat rw,nosuid,nodev,relatime,uid=1000,gid=1000,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,showexec,utf8,flush,errors=remount-ro 0 0

