Как не копировать, а перемещать файлы с одного сервера на другой (оба Linux)?
man scp
не дал мне ничего полезного. Я не могу использовать 'scp' тогда 'rm', потому что я должен убедиться, что файл успешно передан. Если во время передачи возникает какая-либо ошибка, файл не должен быть удален.
Возможно, мне следует как-нибудь использовать код выхода, но как? Кроме того, существует много файлов, и если последний файл не удастся, будет не очень хорошим вариантом сохранить всю кучу успешно переданных файлов.
Может быть, есть что-то кроме SCP?
linux
networking
scp
Putnik
источник
источник
-e ssh
является неявным значением по умолчанию в течение многих лет, обычно больше нет необходимости использовать этот параметр.smv() { rsync -az --remove-source-files "$@"; }
в мой набор инструментов. Спасибо.Используйте
rsync
вместоscp
:Больше информации с
man rsync
.источник
На этот вопрос ответили очень хорошо, и ответ принят, но, поскольку он всплыл в верхней части первой страницы, я подумал, что по крайней мере постараюсь ответить на него более точно, если не менее элегантно. Да, вы можете использовать код возврата от
scp
, и я делаю это часто. Вbash
:Я согласен с несколькими файлами для правильного копирования и обработки ошибок в стеке, поэтому для нескольких файлов:
Это последнее практично, если вы используете
ssh-agent
, но я очень надеюсь, что вы используете.источник
-l
флаг. Например,-l 8192
для ограничения передач на скорости 8192 кбит / св моей ситуации ssh порт не 22, поэтому
работает для меня.
источник
если у вас есть старый целевой сервер, как я, вы не можете использовать
но вы должны использовать
вместо.
источник
Если выполнение этого в два этапа не является проблемой, вы можете
scp
скопировать файл с удаленного сервера, а затем выполнить егоssh -e "rm /path/to/file"
для удаления с диска. При перемещении файлов, особенно между компьютерами, все может пойти не так, поэтому может быть полезно выполнить копирование и удаление отдельно и удалять файл только тогда, когда вы точно знаете, что он был успешно скопирован первым.источник