Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1049 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  bash: prendre le plus lourd fichier trouvé

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

bash: prendre le plus lourd fichier trouvé

n°946350
Profil sup​primé
Posté le 23-08-2007 à 22:34:56  answer
 

Salut,
j'ai fait un script pour transferer un fichier par scp:
scp /home/fichier.txt machine:/home/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.
 :hello:  
dupdup

mood
Publicité
Posté le 23-08-2007 à 22:34:56  profilanswer
 

n°946353
zecrazytux
Posté le 23-08-2007 à 23:03:13  profilanswer
 

find avec les options de temps pour le plus recent, avec un exec de scp


---------------
Blog photo/récits activités en montagne http://planetcaravan.net
n°946355
Profil sup​primé
Posté le 23-08-2007 à 23:17:50  answer
 

ca me ferait un truc du genre:

Code :
  1. find /home/ -mmin 23 exec scp machine:/home/user


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 machine:/home/user, il envoie le fichier trouvé dans le /home sur la machine distante.
 
ca fonctionnerait comme ca ?

n°946360
zecrazytux
Posté le 23-08-2007 à 23:22:53  profilanswer
 

lis le man: y a {} pour representer le fichier (scp {} machine:/path;)
sinon ouai ça dois être ça ^^


---------------
Blog photo/récits activités en montagne http://planetcaravan.net
n°946361
Profil sup​primé
Posté le 23-08-2007 à 23:29:59  answer
 

J'avais loupé ca dans le man  :pt1cable:  
 

Code :
  1. find /home/ -mmin 23 exec scp {} machine:/home/user;


 
Aussi c'est pas 23 si je veux 23 heures, il faut des minutes derriere le mmin.
 
Merci A toi  :jap:

Message cité 1 fois
Message édité par Profil supprimé le 23-08-2007 à 23:30:20
n°946368
zecrazytux
Posté le 24-08-2007 à 00:32:37  profilanswer
 


éhéh find est une commande assez énorme :o
mais de rien l'ami ;), amsue toi bien :)


---------------
Blog photo/récits activités en montagne http://planetcaravan.net
n°961607
Profil sup​primé
Posté le 07-10-2007 à 21:03:46  answer
 

Bon, un ptit up, juste parsque:
 
J'ai corrigé la forme du script (autrement il etait po content  :o ):
find /cygdrive/c/ -mmin 1380 -exec scp {} labas:/home/;
 
Mais maintenant, il me dit:
missing argument to '-exec'
 
Un idée ?
A+

n°961608
o'gure
Modérateur
Multi grognon de B_L
Posté le 07-10-2007 à 21:08:12  profilanswer
 

\; à la fin ?


---------------
Relax. Take a deep breath !
n°961612
Profil sup​primé
Posté le 07-10-2007 à 21:16:19  answer
 

C'est-a-dire ?
Oui, ca sauvegrda dans /home, le ; pour fermer la commande ?

n°961613
o'gure
Modérateur
Multi grognon de B_L
Posté le 07-10-2007 à 21:20:31  profilanswer
 

Ce que je veux dire, c'est qu'à la fin c'est \; et pas seulement ;


Message édité par o'gure le 07-10-2007 à 21:26:38

---------------
Relax. Take a deep breath !
mood
Publicité
Posté le 07-10-2007 à 21:20:31  profilanswer
 

n°961614
o'gure
Modérateur
Multi grognon de B_L
Posté le 07-10-2007 à 21:22:04  profilanswer
 

Toujours faire man find

Citation :

Both  of  these constructions might need to be escaped (with a ‘\’) or quoted to protect them from expansion by the shell.


Message édité par o'gure le 07-10-2007 à 21:28:08

---------------
Relax. Take a deep breath !
n°961615
Profil sup​primé
Posté le 07-10-2007 à 21:49:53  answer
 

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...


Message édité par o'gure le 07-10-2007 à 21:59:27
n°961616
o'gure
Modérateur
Multi grognon de B_L
Posté le 07-10-2007 à 21:58:19  profilanswer
 

> cat run.sh
#!/bin/sh
find . -mmin 1380 -exec mv {} ../ ;
> ./run.sh
find: missing argument to `-exec'
zsh: exit 1     ./run.sh


 

> cat run.sh  
#!/bin/sh
find . -mmin 1380 -exec mv {} ../\;  
> ./run.sh    
find: missing argument to `-exec'
zsh: exit 1     ./run.sh


> cat run.sh  
#!/bin/sh
find . -mmin 1380 -exec mv {} ../ \;
> ./run.sh    
 


 
Tu mets bien un espace avant le \; ?


---------------
Relax. Take a deep breath !
n°961618
Profil sup​primé
Posté le 07-10-2007 à 22:05:44  answer
 

find /cygdrive/c/ -mmin 1380 -exec scp {} serv:/home/ \;

 

oui, avec espace

Message cité 1 fois
Message édité par Profil supprimé le 07-10-2007 à 22:15:09
n°961621
Mjules
Modérateur
Parle dans le vide
Posté le 07-10-2007 à 22:15:46  profilanswer
 

je viens de tester ça et ça fonctionne :

find /home/jules/tmp -mmin 2 -exec mv {} /home/jules/ \;


 

[jules@tue-amour ~]$ find --version
« find » de GNU version 4.2.30
Options activées: D_TYPE O_NOFOLLOW(enabled) LEAF_OPTIMISATION  


---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
n°961629
o'gure
Modérateur
Multi grognon de B_L
Posté le 07-10-2007 à 22:21:15  profilanswer
 


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 + \; [:spamafote]
Essaye en mettant des " " autour de scp {} serv:/home/ pour voir

 

edit: d'ailleurs en reprenant exactement la commande que tu donnes, find accepte [:spamafote]


Message édité par o'gure le 07-10-2007 à 22:25:48

---------------
Relax. Take a deep breath !
n°961636
Profil sup​primé
Posté le 07-10-2007 à 22:37:15  answer
 

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 {} serv:/home/ \;
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  :p


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  bash: prendre le plus lourd fichier trouvé

 

Sujets relatifs
X11 pb affichage fichier avec awkConcaténation dans un script Bash + Perl
Traitement d'un fichier xml avec awk/grep/sedProbleme Samba impossible copie fichier
Bash = & || DOS = ?traitement d'un fichier de retour d'email d'erreur avec SED
Firefox : pb ouverture dossier contenant d'un fichier téléchargé...problème pour créer mon script bash
Lancer Awk dans un bash 
Plus de sujets relatifs à : bash: prendre le plus lourd fichier trouvé


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR