Tar
Tar est une commande pour "agréger" les fichiers dans un seul fichier.
Elle est archi connue et il n'est peut être pas la peine de la décrire ici.
En revanche on peut avoir des utilisations "avancées" qui ne sont pas évidentes.
Faire une sauvegarde à distance.
On veut sauvegarder des fichiers sur un serveur mais il n'y a pas assez de place en local pour le faire. La solution serait de lancer le tar sur sur le serveur distant et de récupérer le résultat en local.
la commande tar accepte de rediriger la sortie vers un fichier et - représente la sortie standard. En revanche la commande :
tar cf - /sources
ne fonctionne pas.
tar: Refusing to write archive contents to terminal (missing -f option?)
tar: Error is not recoverable: exiting now
Pour d'obscures raisons de sécurité tar repère que vous voulez envoyer le flux à l'écran et refuse. Pourtant si on fait:
tar cf - /sources > sources.tar
on a bien un fichier sources.tar. La ruse consiste à lancer la même chose par ssh et de récupérer la sortie standard en local!
ssh adm@lifou.pinon-hebert.fr "tar cvzf - /mnt/disk0/" > sauvagarde.tgz
En plus ici on zippe les données. Ca prendra moins de place sur le disque mais, surtout, la bande passante est économisée d'autant.
Dupliquer une arborescence d'un serveur à un autre
C'est simple au lieu de sauvegarder dans un fichier .tar ou .tgz on l'envoie en entrée d'une commande tar d'extraction.
mkdir remote_sources
ssh admin@lifou.pinon-hebert.fr "tar czf - sources" | tar xzf - -C remote_sources