Comment scp des fichiers de taille inférieure à x?

13

Je développe quelque chose sur mon ordinateur portable et scpe les fichiers sur un PC haute performance (un serveur sans moniteur). Par paresse, je fais ça actuellement (sur l'ordinateur portable):

scp -r ~/project/* server:~/project/

Cependant, certains des fichiers dans le répertoire du projet sont des fichiers journaux et des fichiers de sortie que je n'ai pas besoin d'envoyer, qui peuvent parfois être un concert. Ce que je voudrais, c'est une belle commande propre qui fait essentiellement la même chose (transmet tous les fichiers du projet et ses sous-répertoires) mais n'envoie que des fichiers sous un certain seuil de taille de fichier, comme 100 Mo. Je n'ai que peu d'expérience avec bash et pas du tout avec regexp, donc je n'ai aucune idée de comment faire cela sans une méthode compliquée comme l'importation de sys en python et l'utilisation d'un tas d'if et de comparaisons.

iammax
la source

Réponses:

27

vous pouvez utiliser la commande 'rsync' qui a une option pour contrôler la taille du fichier à exclure.

rsync -rv --max-size=100m /path/in/local/ server:~/project/

de ' man rsync ',

--max-size=SIZE    don't transfer any file larger than SIZE

Réponse mise à jour : excluez simplement les fichiers journaux avec l'option 'rsync' --exclude comme ci-dessous

rsync -rv --exclude='*.log' --max-size=100m /path/in/local/ server:~/project/

ou vous pouvez utiliser la combinaison de commandes 'find' avec 'scp' et spécifier la limite de taille de fichier avec son -sizeoption. utiliser ! -name '*.log'pour exclure certains fichiers se terminant par 'log'.

find /path/in/local -type f ! -name '*.log' -size -100m -exec scp '{}' server:~/project/ \;
αғsнιη
la source
1
Une note pour l'OP: rsyncest similaire scp, mais plus efficace, car elle transfère uniquement les modifications si un fichier est modifié.
Paddy Landau
soyez prudent avec l'ordre des répertoires commersync -rv --max-size SOURCE DESTINATION. Je n'ai pas lu correctement, et ce bruit a de très graves conséquences.
toto_tico