2011-12-13 2 views
0

J'ai besoin de configurer un script bash qui tars et compresse un répertoire. Le tar devrait être mis à jour tous les jours après ce point avec le même répertoire. Cela devrait arriver pendant une durée de 14 jours jusqu'à ce que le tar soit finalement retiré et le processus redémarré.Comment créer un fichier tar mis à jour pendant 2 semaines

Je pourrais utiliser une main pour régler ceci. Merci beaucoup

Répondre

0

Vous pouvez utiliser les tâches cron pour gérer l'archivage tous les jours (à minuit ou peu importe). Vous pouvez le rechercher en utilisant 'man cron'. Une façon de procéder consiste à créer un travail cron qui archive le répertoire et le met à jour chaque jour. Un autre travail de cron pour compresser cette archive.

Pour la première, quelque chose comme:

if [ ! -f directory.tgz ]; then 
    tar cf directory.tgz directory_name/ 
else 
    tar uf directory.tgz directory_name/ 

Un exemple d'une tâche cron qui se déroulera chaque jour ressemblerait à quelque chose comme ceci:

58 23 * * * script 

qui se déroulera à l'heure 23 à la 58e minute (juste avant minuit). Évidemment, vous devrez ajuster cela pour répondre à vos besoins.

EDIT: Je devrais également ajouter comment faire pour le compresser. Ce serait une bonne idée de rechercher les avantages et les inconvénients des algorithmes de compression. Par exemple, gzip prendra probablement moins de temps à compresser que bzip2; mais cette dernière peut fournir une compression plus faible (sur la base des données compressées) que la première. Leur utilisation est assez simple, utilisez à nouveau les pages 'man' pour eux. Voici un exemple:

bzip2 -c directory.tar > directory.bz2 
Questions connexes