Obtenir le fichier le plus récent

jean.mi85 Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   -  
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   -
Salut à tous !

J'aimerais savoir s'il existe une commande ou un petit script pour comparer les dates de deux fichiers et avoir en sortie le fichier le plus récent. Tout cela dans le but d'automatiser la mise à jour d'un firmware.

J'ai tenté le "ls -all" suivi du "cut" pour récuperer les deux dates de modification de chaque fichier, mais je suis bloqué à cet endroit là. Je ne sais pas comment les comparer... J'avais pensé à cette méthode puisque le fichier de mise à jour est placé seul dans un répertoire d'un serveur. Ainsi, il est est par conséquent le plus récent.

Mon but est le suivant : Le firmware de l'appareil à mettre à jour vérifie (à l'aide de sa crontable) chaque heure si le fichier présent dans le répertoire du serveur est plus récent. Mais je suis bloqué car je ne sais pas comment faire pour que le firmware se rende compte que le fichier sur le serveur est plus récent que celui qu'il a actuellement...

J'espère ne pas avoir été trop incompréhensible. :)

Merci d'avance pour vos réponses ! ;)
A voir également:

5 réponses

lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,

as-tu pensé d'utiliser l'option -t de la commande ls?


-t
Trier le contenu des répertoires en fonction de la date et non pas en ordre alphabétique. Les fichiers les plus récents sont présentés en premier.
0
jean.mi85 Messages postés 10 Date d'inscription   Statut Membre Dernière intervention  
 
Merci de ta réponse.

Oui j'ai déjà testé. On trie bien les fichiers par ordre chronologique et on obtient par conséquent le fichier le plus récent en haut de la liste. On pourrait donc en effet classer les diverses mises à jour sur le serveur. Mais le majeur problème est le fait qu'il faille comparer la date du fichier présent sur la borne WiFi (dont le firmware est à mettre à jour) avec celui présent sur le serveur pour savoir si la mise à jour est nécessaire. :)
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 636
 
Hello,
La commande test peut aussi être utile:

FILE1 -nt FILE2
FILE1 is newer (modification date) than FILE2
FILE1 -ot FILE2
FILE1 is older than FILE2
0
jean.mi85 Messages postés 10 Date d'inscription   Statut Membre Dernière intervention  
 
J'ai pensé également à cette commande mais visiblement ma ditrib Debian présente sur mon serveur ne connaît pas cette commande. Quand j'essaie sur ma borne WiFi (OpenWRT), elle ne veut rien savoir non-plus... :'(

En fait, je pense plutôt qu'il va me falloir faire un petit script qui récupère les dates de modification de deux fichiers et qui en déduit le plus récent. ;)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 636
 
Une fois les fichiers trouvés, il est possible d'utiliser la commande date pour convertir n'importe quel date genre JJ/MM/AAAA hh:mm:ss en secondes pour faire des comparaisons numériques dans un script.
0