bash: prendre le plus lourd fichier trouvé - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 23-08-2007 à 23:03:13
find avec les options de temps pour le plus recent, avec un exec de scp
Marsh Posté le 23-08-2007 à 23:17:50
ca me ferait un truc du genre:
Code :
|
si je fais ca il regarde que dans /home,
-mmin 23 il prend celui qui a été modifié il y a moins de 23 heures (en theorie 1 seul),
et exec scp machinehome/user, il envoie le fichier trouvé dans le /home sur la machine distante.
ca fonctionnerait comme ca ?
Marsh Posté le 23-08-2007 à 23:22:53
lis le man: y a {} pour representer le fichier (scp {} machinepath
sinon ouai ça dois être ça ^^
Marsh Posté le 23-08-2007 à 23:29:59
J'avais loupé ca dans le man
Code :
|
Aussi c'est pas 23 si je veux 23 heures, il faut des minutes derriere le mmin.
Merci A toi
Marsh Posté le 24-08-2007 à 00:32:37
éhéh find est une commande assez énorme
mais de rien l'ami , amsue toi bien
Marsh Posté le 07-10-2007 à 21:03:46
Bon, un ptit up, juste parsque:
J'ai corrigé la forme du script (autrement il etait po content ):
find /cygdrive/c/ -mmin 1380 -exec scp {} labashome/;
Mais maintenant, il me dit:
missing argument to '-exec'
Un idée ?
A+
Marsh Posté le 07-10-2007 à 21:08:12
\; à la fin ?
Marsh Posté le 07-10-2007 à 21:16:19
C'est-a-dire ?
Oui, ca sauvegrda dans /home, le ; pour fermer la commande ?
Marsh Posté le 07-10-2007 à 21:20:31
Ce que je veux dire, c'est qu'à la fin c'est \; et pas seulement ;
Marsh Posté le 07-10-2007 à 21:49:53
Peut importe la combinaision \,; avec ou sans ; c'est la même erreur.
edit: Désolé j'ai encore édité un post pas à moi bouton trop proche...
Marsh Posté le 07-10-2007 à 21:58:19
> cat run.sh |
> cat run.sh |
> cat run.sh |
Tu mets bien un espace avant le \; ?
Marsh Posté le 07-10-2007 à 22:05:44
find /cygdrive/c/ -mmin 1380 -exec scp {} servhome/ \;
oui, avec espace
Marsh Posté le 07-10-2007 à 22:15:46
je viens de tester ça et ça fonctionne :
find /home/jules/tmp -mmin 2 -exec mv {} /home/jules/ \; |
[jules@tue-amour ~]$ find --version |
Marsh Posté le 07-10-2007 à 22:21:15
J'ai essayé en remplacant mon mv par un scp pour avoir exactement la même commande que toi et ca marche bien chez avec espace + \;
Essaye en mettant des " " autour de scp {} servhome/ pour voir
edit: d'ailleurs en reprenant exactement la commande que tu donnes, find accepte
Marsh Posté le 07-10-2007 à 22:37:15
Bah, maintenant, elle remarche , donc peut-etre qu'en supprimant les guillemets rajoutés ca a changé qqch
Bon, donc c'est bon pour ca:
find /cygdrive/c/ -mmin -1380 -exec scp {} servhome/ \;
Mais, par contre, dans le resultat, j'ai le
/cugdrive/c/file1
mais aussi directement le /cygdrive/c/
Et pour ce dernier, il me dit que ca n'est pas un fichier (normal)
Bon, va falloir ameliorer ca, pour qu'il me fasse un log, enfin on verra ce que celui que j'ai mis dans cron me sort
Marsh Posté le 23-08-2007 à 22:34:56
Salut,
j'ai fait un script pour transferer un fichier par scp:
scp /home/fichier.txt machinehome/user
Mais en fait le fichier à envoyer est une sauvegarde effectuée tous les jours. Il y a 6 fichiers, et la machine enregistre à sa guise (enfin on ne sait à quel rhytme) sur un des 6 à chaque fois, le plus lourd étant la sauvegarde la plus récente. Plutot que d'envoyer les 6 fichiers, je souhaiterais envoyer seulement le plus récent.
Mais je n'ai aucune idée de comment réaliser cela...
Merci de me donner des pistes.
dupdup