Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 15/07/2010, à 20:32

gisclace

Bash qui rennome à la date du jour

Bonjour,

Pour mon serveur ftp, j'ai mis en place une sauvegarde automatique des logs (jour et semaine) en faisant un bash puis en le métant en tache planifié dans cron.

Mon script est le suivant:

#!/bin/bash
jour=$(date +%A)
source=/var/log/vsftpd.log
destination=/media/serveur/ftp/log/
rsync -a --stats --progress --delete $source $destination/$jour/
exit 0

En gros, hormis le fait que mes dossiers de destination doivent être en anglais, ça fonctionne.

Mais ce que je voudrais faire, c'est que le fichier de sortie soit renommé avec la date du jour.

j'ai essayé de rajouter dans le script:

name=$(date +%D)
rsync ........$destination/$jour/$name

mais comme vous vous en doutez, cela ne fonctionne pas ^^

Donc voila, si l'un de vous à une idée, je l'en remercie d'avance et lui paye une bière virtuel

Hors ligne

#2 Le 15/07/2010, à 21:25

Compte anonymisé

Re : Bash qui rennome à la date du jour

et avec ça ? :
jour=$(date +%Y%m%d)

#3 Le 16/07/2010, à 00:23

Watael

Re : Bash qui rennome à la date du jour

- date n'est pas une commande intégrée à bash.
- cron n'a pas de valeurs par défaut comme bash.
- il faut, ou définir un PATH dans la crontab, ou indiquer un PATH cohérent avec les commandes externes utilisées dans le script.


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#4 Le 16/07/2010, à 10:14

credenhill

Re : Bash qui rennome à la date du jour

hello

gisclace a écrit :
name=$(date +%D)
rsync ........$destination/$jour/$name

les répertoires $destination et $jour existent ?

Hors ligne

#5 Le 16/07/2010, à 10:52

iuchiban

Re : Bash qui rennome à la date du jour

effectivement, si tu n'as qu'un seul fichier à archiver et auquel tu veux ajouter la date du jour, tu peux faire :

#!/bin/bash
source=/var/log/vsftpd.log
destination=/media/serveur/ftp/log/$(date +%Y%m%d).vsftpd.log
rsync -a --stats --progress --delete $source $destination
exit 0

Comme ça, ça te liste tous les fichiers avec la date au format anglais devant le fichier de log, donc trié chronologiquement.


C'est depuis que Chuck Norris a laissé la vie sauve à un manchot que l'on dit que Linux est libre.

Chuck Norris n'a pas besoin d'éditer son premier message pour ajouter [Résolu]. Chuck Norris est toujours [Résolu], quoi qu'il arrive.

Hors ligne