Власне я робив так:
scp -r path/to/source/tree login@host:/path/to/destination/folder
Але потім виявив що scp
ходить за символьними посиланнями і копіює все також і там. Від чого іноді зациклюється…
Тому на просторах інтернету мені підказали ідею послати файли через трубу.
Найперша команда – бере вміст директорії, стискає, і посилає стиснені дані в стандартний вивід:
tar czf - path/to/source/tree
І навпаки – прийняти стиснуті дані з stdout і розпакувати їх в поточну директорію.
tar xvzf -
(При цьому директорія tree
створиться, якщо дані пакувались з неї.)
Ну і:
ssh login@host "some; commands"
Виконує інші команди на віддаленому сервері. При цьому може приймати щось з stdout, через трубу. Таким чином ця труба веде з сервера на сервер…
І якщо зібрати все до купи:
tar czf - path/to/source/tree | ssh login@host "cd /path/to/destination/folder; tar xvzf -"
Єдина з цим всім проблема – колись таки доведеться вивчити ті всі ключі до tar. :)
Filed under: Інструменти, Кодерство Tagged: linux