Può essere utile fare una raccolta di tips e tricks, trucchi o operazioni che usiamo per facilitarci qualche compito. Magari scopriamo che quello che facevamo in 10 passaggi si può fare con due pipe e qualche opzione tru
Tutto ovviamente condivisibile, discutibile, cazzi e mazzi.
Visto che salvo le mie cose sulla chiavica usb, se la perdo chi la trova ravana tra i fatti miei e ciò non mi garba più di tanto.
Requisiti:
tar
gpg
bzip2
Compressione Se voglio salvarmi la cartella delle impostazioni di mozilla perchè non si impesti provando firefox 1.5b... # creo un tar (file unico non compresso) della cartella .mozilla tar -cvf mozilla_bak.tar .mozilla/
# lo cripto con una passphrase (non servono chiavi, è simmetrico) gpg -o mozilla_bak.tar.gpg -a --symmetric mozilla_bak.tar
# lo comprimo con bzip2 (nota: bzip2 rimuove il file mozilla.tar.gpg) bzip2 mozilla_bak.tar.gpg
# elimino il tar rimasto rm mozilla_bak.tar
Decompressione Questo è molto più tru: bzcat mozilla_bak.tar.gpg.bz2 | gpg --decrypt -- | tar -xv -- digitate la passphrase di cui sopra e avete la vostra cartella.
Ricordarselo è un macello, infatti ce l'ho salvato in un txt e me lo ripesco all'occorrenza. I meno rozzi userebbero uno script Di solito quando lo uso metto la data odierna nel nome del file usando $(date +%F). Cioèmozilla_$(date +%F).tardiventamozilla_2005-09-17.tar
Ogni tanto anche i nerd sbagliano: poniamo che abbiate infilato un mucchio di file in una directory che già aveva il suo pacifico contenuto. Come facciamo a separare la roba infilata per sbaglio da quella che c'era prima? Io che mi sono introiato una dir provando rsync (sapete che uno slash in più fa la differenza?) mi son salvato così:
Passo uno: ottenere una lista dei nomi dei file copiati per sbaglio
se li avete semplicemente copiati, basta un ls nella directory di livello più alto
se li avete estratti da una tarball o da qualsiasi archivio compresso, ripigliatelo e listatelo (con tar si usa l'opzione -t)
fate attenzione all'oputput, perchè ci serve solo il nome del file
Posizionatevi nella cartella incasinata e... for file in $(comando_lista) do rm -rf $file done
oppure, se il for non vi piace , rm -rf $(comando_lista) dove comando_lista era il precedente ls o tar -tf archivio.
Se preferite andare cauti, usate l'opzione -i di rm.
Occhio a fare un backup prima di lanciarlo che col bash scripting sono dannoso. Per dubbi chiedere a macumba.
user101 global # time (seq -f '10.0.0.%g' 1 254 | xargs -n 1 -P 254 ping -c1 -w1) 2>/dev/null | grep icmp 64 bytes from 10.0.0.4: icmp_seq=1 ttl=64 time=0.476 ms 64 bytes from 10.0.0.8: icmp_seq=1 ttl=128 time=3.44 ms 64 bytes from 10.0.0.101: icmp_seq=1 ttl=64 time=0.073 ms 64 bytes from 10.0.0.254: icmp_seq=1 ttl=64 time=3.03 ms
real 0m1.369s user 0m0.120s sys 0m0.224s user101 global # time nmap -nsP 10.0.0.1-254 | grep up | grep -v scanned Host 10.0.0.4 appears to be up. Host 10.0.0.8 appears to be up. Host 10.0.0.101 appears to be up. Host 10.0.0.254 appears to be up.
real 0m5.651s user 0m0.260s sys 0m0.012s user101 global #
Degna di essere ricordata e' anche la funzionalita di nc per lo scan delle porta,
nc -v -v -z 10.0.0.1 1-2000,
fa un bel port scan dalla 1 alla 2000, con un -v solo si vedono semplicemente le porte aperte... E di molte porte dice anche il classico servizio su quella porta.
[~] time (seq -f '10.0.0.%g' 1 254 | xargs -n 1 -P 254 ping -c1 -w1) 2>/dev/null | grep icmp 64 bytes from 10.0.0.2: icmp_seq=1 ttl=64 time=0.585 ms 64 bytes from 10.0.0.73: icmp_seq=1 ttl=64 time=0.572 ms 64 bytes from 10.0.0.88: icmp_seq=1 ttl=64 time=0.042 ms 64 bytes from 10.0.0.69: icmp_seq=1 ttl=128 time=0.127 ms
real 0m1.224s user 0m0.090s sys 0m0.130s
& [~] time nmap -sP 10.0.0.1-254 | grep up | grep -v scanned Host 10.0.0.2 appears to be up. Host 10.0.0.73 appears to be up. Host 10.0.0.88 appears to be up.
Per i grandi utilizzatori di ssh, soprattutto di multiconnessioni alla stessa macchina, puo' essere utile aggiungere: Host * ControlMaster auto ControlPath ~/.ssh/control-%h:%p-%r
Che permette il tunnellamento di piu' sessioni nella stessa, evitando le perdite di tempo dovute all'autenticazione.