[Résolu] L'inverse de cp -f (non, pas cp -i) ?

L'inverse de cp -f (non, pas cp -i) ? [Résolu] - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 21-04-2006 à 09:11:47    

Bonjour à tous.
 
J'ai un process "cp -R" qui s'est interrompu et est passé dans un état D (Uninterruptible sleep)... bon faut dire que je transférais 65Go depuis un disque dur externe en USB1, je comprends que le kernel en ait eu marre et soit parti piquer un roupillon :D
 
N'empêche, je voudrais reprendre la copie où elle en était (déjà 36Go de copiés)... donc un cp -f est exclu (surtout que le problème va se reproduire, faut pas rêver...) Et un cp -i aussi, ce sont beaucoup de petits fichiers et pas 3-4 gros trucs...
 
Je cherche donc l'équivalent du "-k" de la commande tar (le --keep-old-files), en un peu plus intelligent (genre il faudrait garder si ca existe ET fait la même taille, sinon à la fin un des fichiers restera incomplet : celui qui était en cours de copie quand le process nous a quitté pour le paradis des process)
 
Si vous avez une commande, un utilitaire ou un shell script pour faire ca, ca m'aiderait beaucoup  :jap:  
Sinon je ferai le shellscript, mais ca va prendre un peu de temps :'(
 
 
Merci d'avance  :hello:


Message édité par Xavier_OM le 21-04-2006 à 11:16:17

---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
Reply

Marsh Posté le 21-04-2006 à 09:11:47   

Reply

Marsh Posté le 21-04-2006 à 09:42:25    

Lo !!  :)  
 
Bon voici ma solution :  
 
il existe une option de cp qui s'appelle update  

cp -u


Cette fonction ne copie que si les dates des fichiers sources sont plus recentes que celles des fichiers cibles (donc, si tu n'a pas modifie tes fichiers -- ce qui parait logique -- ca doit etre bon). Ensuite, il reste le probleme du fichier qui ete en cours de copie. La, soit tu arrives a voir ou il s'est arrete (genre un plein milieu d'un dossier il manque des fichiers), soit il faut utiliser un diff sur les arborescences et voir ou il y a une difference.
 
Voili voilou ...
 
[Edit]
 
Pour prevenir ce genre de probleme
 
Le mieux lors de gros deplacement et de tarer (sans compression) ce qu'on veut deplacer, le deplacer puis le detarer. Bien entendu temporairement cela encombrera le disque car on aura les fichiers en double (les fichiers d'origine et l'archive ce qui dans le cas de Xavier_OM fait 2* 65 Go). La solution est d'utiliser les pipes pour ca avec une commande du genre  
 

tar cvf - . | ( cd /mnt/destination && tar xvf - )


Message édité par ahmlot-khmen le 21-04-2006 à 10:21:25

---------------
Axiome 1 : j'ai toujours raison ¤ Axiome 2 : si j'ai tort voir l'axiome 1 ¤ Axiome 3 : à prendre avec humour bien évidemment (^_^)
Reply

Marsh Posté le 21-04-2006 à 10:09:28    

Bon j'ai reperé le truc problématique grâce aux dates (à coup de "ls -lrt" ), et donc je pense que ca va bien se finir avec "cp -u"  :bounce:  :jap:  :bounce:


Message édité par Xavier_OM le 21-04-2006 à 10:09:35

---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
Reply

Marsh Posté le 21-04-2006 à 10:11:17    

sinon, un coup de rsync, pour éviter le cas des fichiers "à moitié" transférés

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed