Bonjour,
je me trouve confronté à un problème que je n'arrive pas à résoudre.
Voici le contexte :
Sur un Mageia 5 j'ai mis en place un serveur alcasar.
Ce serveur me créer une archive chiffrées toute les semaines, dans ce répertoire : /var/Save/archive
J'arrive à m'envoyer manuellement les archives par mail ( fichiers .gpg).
Mais ce que je voudrais faire c'est automatiser cette tâche et indiquer dans mon script que le fichier qui doit être utilisé ( en tant que pièce jointe )doit être le dernier fichier créé dans ce répertoire.
En ce moment j'ai ça dans mon fichier .sh
`
echo "texte de mon mail" | mail -s "sujet du mail" -a /var/Save/archive/*.gpg adressemaildestinataire
Donc avec cette commande je reçois mon premier fichier .gpg de créé dans le répertoire /var/Save/archive/
J'ai bien tenté de faire un : /var/Save/archive | grep .gpg$ | head -1 (cette commande dans le prompt me sort bien le dernier fichier créé dans le repertoire )
Mais j'arrive pas à créer une variable ou quelque chose de ce style pour préciser que ça doit être le résultat de cette requête qui doit être en pièce jointe.
J'espère avoir été clair !!
Merci à vous
# trop vague
Posté par nono14 (site web personnel) . Évalué à 2.
quel critère ?
la date la plus récente ?
dans ce cas find avec la bonne option devrait t'aider
Système - Réseau - Sécurité Open Source - Ouvert à de nouvelles opportunités
# Ma proposition
Posté par Axone . Évalué à 2.
[^] # Re: Ma proposition
Posté par NeoX . Évalué à 2.
plus court
monfichier=$(ls -lt /var/Save/archive/*.gpg | head -1)
qui va te donner les infos longues du dernier fichier
ou sinon
find /var/Save/archive -type f -iname '*.gpg' -mtime -1
pour trouver un fichier *.gpg modifié il y a moins de 24h
[^] # Re: Ma proposition
Posté par Axone . Évalué à 2.
Je trouve deux défauts à tes propositions :
- le premier est que dans ta première proposition, la variable va être polluée par tous les attributs du fichiers (taille, propriétaire…).
- dans ton second cas, tu ne renvoies pas du tout le dernier fichier, mais une liste de fichiers datant de moins de 24h. On commence à s'éloigner un peu trop du cahier des charges.
Mais en combinant tout ca, on pourrait faire ceci :
Les options que j'avais mis pour distinguer les répertoires des fichiers ne sont pas vraiment utiles si on utilise *.gpg.
A noter la différence subtile où j'ai remplacé dans les options, ta lettre l (L) par le chiffre 1 (un), pour n'avoir que le chemin et nom de fichier dans la variable.
[^] # Re: Ma proposition
Posté par NeoX . Évalué à 2.
bien joué,
en effet les polices de caracteres sont trompeuses
et j'avais lu chez toi
-tr -l
et je ne comprenais pas non plus comment tu virais les infos des droits et propriétaire/taille.mais si c'est un -1 (le chiffre UN) alors en effet ca change tout.
# Résolu !
Posté par coozin . Évalué à 1. Dernière modification le 03 décembre 2016 à 00:05.
Merci pour vos réponses. je viens de les voir que maintenant je pensais recevoir une alerte sur ma boîte. J'ai trouvé un solution à mon problème :
Je me suis créé ce bash :
/etc/postfix/script/mail.sh
il comprend ces lignes :
j'ai fait quelques tests et tout semble ok.
Si vous voyez des erreurs hésitez pas !
C'est en effet pour avoir le dernière fichier ( par date ) créé dans ce répertoire.
Merci de votre participation
[^] # Re: Résolu !
Posté par NeoX . Évalué à 2.
une optmisisation banale
tu utilises 2 fois le chemin /var/Save/archive
alors soit tu le met dans une variable en debut de script,
soit tu rentres dans le dossier puis tu fais le
ls -t...
donc soit
soit
# résolu
Posté par coozin . Évalué à 1.
Je viens de tester comme vous dites et ça ne passe pas.. Allez comprendre. j'ai remis le bash comme indiqué et ça marche.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.