Come posso scp i file di dimensioni inferiori a x?


13

Sto sviluppando qualcosa sul mio laptop e scansionando i file su un PC ad alte prestazioni (un server senza monitor). Per pigrizia, lo faccio solo attualmente (sul portatile):

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

Tuttavia, alcuni dei file nella directory del progetto sono alcuni file di registro e file che non ho bisogno di inviare, che a volte possono essere un concerto o giù di lì. Quello che vorrei è un bel comando pulito che sostanzialmente fa la stessa cosa (trasmette tutti i file nel progetto e nelle sue sottodirectory) ma invia solo file al di sotto di una certa soglia di dimensione del file, come 100 mb. Ho solo una leggera esperienza con bash e per niente con regexp, quindi non ho davvero idea di come farlo senza qualche metodo contorto come importare sys in Python e usare un sacco di if e confronti.

Risposte:


27

puoi usare il comando 'rsync' che ha un'opzione per controllare la dimensione del file da escludere.

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

da " man rsync ",

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

Risposta aggiornata : escludi semplicemente i file di registro con 'rsync' - escludi l'opzione come di seguito

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

oppure puoi usare la combinazione di comandi 'trova' con 'scp' e specificare il limite della dimensione del file con la sua -sizeopzione. usare ! -name '*.log'per escludere alcuni file che finiscono con 'log'.

find /path/in/local -type f ! -name '*.log' -size -100m -exec scp '{}' server:~/project/ \;

1
Una nota per l'OP: rsyncè simile scp, ma più efficiente, in quanto trasferisce le modifiche solo se un file viene modificato.
Paddy Landau,

fare attenzione all'ordine delle directory comersync -rv --max-size SOURCE DESTINATION. Non ho letto bene e questo effetto ha conseguenze molto negative.
toto_tico,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.