6 votes

Comment puis-je créer un script pour placer les fichiers plus anciens que chaque jour précédent dans leur propre dossier ?

Je lance un script inutilement complexe qui ressemble à cette commande :

find /home/user/videos/*.avi -mtime +0 -exec mv -f {} "/home/nb/videos/1 day old" \;

Ensuite, je lance la même commande, mais cette fois-ci, à partir du dossier "vieux de 1 jour" vers un dossier "vieux de 2 jours". Et d'autres commandes se répètent jusqu'à 7 jours ! Ainsi, chaque jour, les fichiers du dossier "X jours" précédent sont placés dans le dossier du jour suivant.

J'essaie essentiellement d'organiser les fichiers automatiquement, en exécutant un cron, pour déplacer les fichiers datant de plus de X jours dans le bon dossier. C'est inefficace, mais j'ai besoin que cela se produise. Est-ce qu'il y a un moyen plus simple et plus efficace ?

Une fois qu'il a atteint le dossier des 7 jours, j'ai la commande finale qui supprime les fichiers de plus de 7 jours de ce dernier dossier.

3voto

DublinJimbo Points 314

J'utilise (pour une situation similaire) une méthode non standard : logrotate .

Cette opération permet de sauvegarder toutes les vidéos dans /home/user/videos à la /home/nb/videos/backup/videos.tar (quotidien), puis déplacer automatiquement l'ancien fichier tar vers ...1.tar , ...2.tar etc. Les sauvegardes datant de plus de 7 jours seront supprimées.

J'ai inclus mv /home/user/videos/*.avi /var/tmp de conserver une copie des vidéos en cas de problème.

Pour activer cette configuration de logrotate, placez un fichier similaire à celui-ci dans le répertoire /etc/logrotate.d répertoire :

/home/nb/videos/backup/videos.tar {
  rotate 7
  daily
  notifempty
  nocreate
  nocompress
  missingok

  postrotate
    if ls /home/user/videos/*.avi > /dev/null 2>&1; then
      tar cf /home/nb/videos/backup/videos.tar /home/user/videos/*.avi
      mv /home/user/videos/*.avi /var/tmp
    fi
  endscript
}

Pour plus d'informations, voir man logrotate .

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X