Мені потрібно передавати файли з одного сервера CentOS на інший. Передаватиме файли по 5 Мб приблизно кожні 10 хвилин. Не потрібно шифрування.
Що легко для швидкої передачі файлів?
Чи є щось простіше, ніж ftp?
Спасибі!
Мені потрібно передавати файли з одного сервера CentOS на інший. Передаватиме файли по 5 Мб приблизно кожні 10 хвилин. Не потрібно шифрування.
Що легко для швидкої передачі файлів?
Чи є щось простіше, ніж ftp?
Спасибі!
Відповіді:
rsync
Я б використовував rsync, перш ніж я використовував ftp або tftp.
Більше варіантів та (на мій досвід) надійніший переказ.
смола над ssh нормально, але tar на TCP через netcat приблизно настільки низька, як ви можете отримати! Якщо це разова річ, спробуйте:
На приймачі:
nc -l -p 8989 | tar x
Про відправника:
tar cf - /source-path | nc (receiving host ip address) 8989
Якщо це ви збираєтеся регулярно робити, я, ймовірно, використовую rsync.
Двоє людей згадували смолу над ssh, але не сказали, як це зробити. Для запису основна процедура полягає у виконанні:
tar cf - files... | ssh remotehost 'cd /destination && tar xvf -'
Або, якщо ви хочете розпочати передачу з приймального кінця:
ssh remotehost 'cd /source && tar cf - files' | tar xvf -
Перевага зробити це таким чином над рішенням мережі Evan в тому, що всю справу можна запустити з одного комп’ютера; не потрібно координувати два виклики netcat. Якщо вам потрібно це автоматично запустити, ви можете встановити ключ ssh, який дозволяє встановлювати з'єднання без парольної фрази, і використовувати цей ключ для цих з'єднань.
ssh має можливість -C для стиснення потоку даних, або ви можете використовувати вбудовану здатність стискання GNU tar:
tar zcf - files... | ssh remotehost 'cd /destination && tar xzvf -'
Rsync - це ще один варіант, але її сильний варіант полягає в оновленні файлів, які вже є на кінці прийому. Я знайшов це повільніше, ніж scp або tar / ssh при використанні його для передачі файлів, які вже не існують на іншому кінці.
Я б використовував scp
або tar
більше ssh
, чесно. Шифрування уповільнює ситуацію, але простота налаштування та використання, надійність та (суб'єктивно, звичайно) знайомство змушують мене скористатися хітом, якщо мені справді не потрібна ця швидкість.
Ви можете пришвидшити передачу ssh, наказавши також використовувати швидший шифр, ніж за замовчуванням. За замовчуванням, як правило, зазвичай 3des
ви можете це зробити -c des
, так що, очевидно, буде швидше, і -c blowfish
він також представлений настільки ж швидко, хоча я ще не перевіряв цього вимогливо.
(Ще в часи SSHv1 ти часто міг це робити -c none
, але, мабуть, хтось вирішив, що це дзюджу погано.)
Якщо вам доведеться пройти scp / ssh, мої експерименти показують, що найшвидший шифр, включений за замовчуванням в ці дні, є RC4. Ви вказуєте шифр через " -c arcfour " у вашій команді ssh / scp:
для початкової копії:
scp -c arcfour -r foo/ desthost:/destdir
для оновлень:
rsync -e 'ssh -c arcfour' -r foo/ desthost:/destdir
Rsync - це хороший шлях, тому що якщо ви не раз передаєте ті самі файли, це прискорить копію, як показано з цією цитатою зі сторінки man.
rsync is a program that behaves in much the same way that rcp does, but
has many more options and uses the rsync remote-update protocol to
greatly speed up file transfers when the destination file is being
updated.
The rsync remote-update protocol allows rsync to transfer just the dif-
ferences between two sets of files across the network connection, using
an efficient checksum-search algorithm described in the technical
report that accompanies this package.
FTP досить простий, але ще простішим способом може бути створення спільної NFS на одній машині та встановлення на іншій. Тоді копіювання файлів буде полягати у виконанні cp з одного каталогу в інший.
Якщо ви хочете швидкості, ви можете використовувати netcat та смолу. Це буде швидше, ніж ssh, rsync або scp в локальній мережі, де шифрування не викликає особливих проблем. Google "netcat tar".
nc -l -p 7878 | tar -C /target/dir -xzf -
tar -cz /source/dir | nc DestinationServer 7878
Це, очевидно, вимагає, щоб netcat був фактично встановлений. Google "netcat tar" для отримання додаткової інформації.
Я вважаю, що ви вже вирішили свою проблему, але якщо ваш ssh працює на іншому порту (а не на стандартному порту 22), ви можете використовувати це
rsync -avz --rsh = 'ssh -pXXXXX' / local / dir / root@192.168.1.2: / remote / dir
Примітка: - замініть XXXXX на номер порту - замініть 192.16.1.2 на правильний IP віддаленого сервера
https://www.npmjs.org/package/gist-cli
https://github.com/settings/applications#personal-access-tokens
або цей:
https://github.com/defunkt/gist
Використовуйте команду gist для завантаження та завантаження