Forums Rue-Montgallet.com
Rue-Montgallet.comRue-Hardware.comRue-Occasion.comRue-DVD.comRue-Jeuxvideo.comRue-AudioVideo.comRue-Telephone.comForums
S'inscrire | S'identifier |
| Recherche avancée | Aide
 
 

gouki9711 et 13 utilisateurs inconnus

 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet :

script de backup avec vérif fichier non utilisé + renommage

 
n°20729
cil20
Profil : Membre
Posté le 25-10-2006 à 11:02:58  profilanswer
 

Bonjour,
 
je souhaite faire un script récurrent permettant de copier sur un répertoire distant certains (nouveaux) fichiers, en s'abstenant de copier le(s) fichiers en cours d'utilisation.
 
Description du pb:
 
Un ordinateur sous Linux est chargé de l'acquisition de données en provenance d'un instrument. Les fichiers générés sont volumineux (de l'ordre du Go).
Les expériences peuvent être longues (plusieurs heures d'acquisition pour 1 même fichier) et se succéder sans interruption pendant plusieurs jours.
Je souhaite copier les fichiers générés ("ABCXYZ.mdat" ) vers un disque réseau, vérifier que la copie est non corrompue, et changer le nom du fichier distant en "XYZ0000.mdat" (enlever les 3 premiers caractères et ajouter 4 zéros avant l'extension).
Idéalement le script devrait lancer la copie dès qu'un nouveau fichier a été généré (et n'est plus utilisé), alternativement il pourrait se lancer périodiquement et copier tous les nouveaux fichiers excepté celui (ou ceux) en cours d'utilisaton.
 
Le nommage des fichiers est incrémentiel et le nom ne comporte que des caractères numériques; s'il est trop compliqué de déterminer si un fichier est en cours d'utilisation, il devrait être possible de lister les fichiers et de ne copier que les nouveaux fichiers sauf le dernier (celui dont le nombre est le plus grand). Je suppose que l'on peut aussi classer les fichiers par date de dernier accès, et ne pas prendre en compte le plus récent.
 
Idéalement, le script devrait pouvoir optionnellement effacer les fichiers copiés dont la copie a été validée.
 
Par ailleurs, je souhaiterais faire un script pour surveiller l'espace disque sur la partition de données et sur la partition root (contenant les logs), et qui envoie un mail à plusieurs destinataires lorsque l'espace disque vient à manquer sur l'une de ces partitions (par exemple utilisé à + de 75%), mais ça je devrais pouvoir le trouver facilement...


Message édité par cil20 le 31-10-2006 à 12:38:51
n°20730
01iv'
Profil : Membre
Posté le 25-10-2006 à 19:20:43  profilanswer
 

Salut,
 
fichiers ouverts: lsof
vérification de non corruption: md5sum
modification du nom: grep, sed, awk...
après il te suffit de lire les man pages et d'organiser cela avec les bonnes options ;)

n°20755
cil20
Profil : Membre
Posté le 29-10-2006 à 20:35:44  profilanswer
 

merci, par contre je n'y connais rien  :??: , j'aurais encore besoin d'aide  :ange:  
 
Pour lsof, je n'arrive pas a comprendre si l'on peut lister les fichiers d'un certain type (contenant une chaine de caracteres, en l'occurence .mdat). Si c'etait le cas, et comme on peut lui demander de rafraichir la lsite periodiquement, je pense que mon script pourrait correspondre a:
Si il y a un .mdat  
Alors Des Qu'il n'apparait plus Faire le transfert
 
sinon je peux faire une liste des fichiers mdat mais comment en soustraire ceux qui sont utilises ? Je n'ais pas l'impression que cette option soit dispo et je ne sais pas comment coupler les 2 commandes (ls et lsof)
 
Il reste l'option de soustraire de la lsite des fichiers a transferer le plus recent (tri par date ?) ou celui de plus grand nombre (en se servant du nommage incrementiel des fichiers, tri par nom)

n°20756
P-Y
Intermittent du troll
Profil : Vieux de la vieille
Posté le 29-10-2006 à 21:25:54  profilanswer
 

comparer 2 fichiers: diff
faire du tri: sort
combiner les commandes: |  
rediriger dans un fichier: >
 
petit exemple : lsof | grep *.mdat | cut -d' ' -f1 | sort > toto.txt te cree un fichier toto.txt avec la liste de tous les programmes utilisant un fichier.mdat, classe par ordre alphabetique
 
comme l'a tres bien dit Oliv, Apres tu combines tout ca comme il faut et tu pourras faire ce que tu veux ;)


Message édité par P-Y le 29-10-2006 à 21:27:15

---------------
"Comme la Hongrie, le monde informatique a une langue qui lui est propre. Mais il y a une différence. Si vous restez assez longtemps avec des Hongrois, vous finirez bien par comprendre de quoi ils parlent."
[:zzzinv][url=http://www.mozilla-europe.
n°20759
01iv'
Profil : Membre
Posté le 30-10-2006 à 19:34:22  profilanswer
 

petit conseil: lis l'excellent "BASH programming Howto"... je pense que ça devrait t'apprendre pas mal de trucs utiles ;)
tu le trouveras facilement sur le net... et même peut être sur ta distro linux dans /usr/share/doc/HOWTO ou un chemin ressemblant à cela.
Et le man de lsof te donne à la fin 2,3 examples qui devraient peut être t'intéresser comme comment trouver les fichiers utilisés par un process.


Aller à :
Ajouter une réponse