2015-05-19 4 views
1

Надеюсь, это подходящее место, чтобы задать этот вопрос.уничтожение прерванной команды «mv» (переместить)

При попытке переместить большой каталог «mydirname» (abt900GB) на удаленном сервере linux от /abc/source до /xyz/target; Я использовал следующую команду в source каталоге

mv mydirname /xyz/target/ & 

Однако, через некоторое время этот процесс был прерван, и дал ошибку,

mv: cannot stat `mydirname/GS9/set04/trans/run.3/acc': Stale file handle 
mv: cannot stat `mydirname/GS9/set04/trans/run.4/amc': Stale file handle 
. 
. 
. 
and many more such messages mentioning different subdirectories locations. 

Проблема заключается в том, что процесс перешел около 300GB данных , Однако существует много каталогов, которые не полностью перемещены. Аналогичная проблема возникла с другой передачей (около 500 ГБ), которая выполнялась на той же машине.

Кроме того, я больше не на том же рабочем заседании. Я отключился и подключился к удаленному серверу.

Было бы здорово, если вы поможете в следующих запросах.

  1. Возможно ли, что некоторые из файла не полностью переданы (я видел такие случаи в команде «СР», где, если процесс прерывается, это приводит к меньшей размер файла в месте назначения.

  2. Как я могу возобновить процесс, так что я не потерять какие-либо данные. будет ли команда «мВ» будет достаточно? или есть специальная команда, которая может работать в фоновом режиме.

  3. Else, есть команда, чтобы отменить процесс и восстановить 'mydirname' в исходное положение 'source'.

+0

Есть источник и цель на том же томе? –

+0

Использование чего-то вроде экрана (или одного из его альтернатив) используется для длительных процессов, чтобы предотвратить зависимость от соединения. –

+0

Я не уверен, мне нужно будет спросить у ИТ-администратора. Однако, когда я делаю «cd /», я могу видеть как «/ abc», так и «/ xyz», используя «ls» –

ответ

4

Использование «Rsync», чтобы завершить работу, как это:

rsync -av --delete mydirname/ /xyz/target 

Он будет проверять, что все файлы будут перемещены, определенной длины, правильные метки времени и будет удалять любые остатки мусора.

Вы можете проверить сначала с «всухую», чтобы увидеть, какие повреждения являются:

rsync -avn --delete mydirname/ /xyz/target 

Это проходит через весь процесс Rsync, но на самом деле ничего не делать. Обычно рекомендуется запустить этот тест, чтобы проверить синтаксис команды и посмотреть, будет ли он делать то, что, по вашему мнению, должно делать.

Команда «rsync» на самом деле больше похожа на копию «cp», чем переход «mv». Он оставит исходные файлы на месте, и вы сможете удалить их позже, когда будете удовлетворены тем, что все передано правильно.

+0

Первоначально я использовал «mv mydirname xyz/target /». Является ли «rsync -avn mydirname/xyz/target /» и «rsync -avn mydirname// xyz/target /» одинаковым? При запуске «rsync -avn mydirname/xyz/target /» у меня появилось следующее сообщение: отправлено 198913 байтов получено 26613 байт 16705,63 байт/с общий размер 845407797509 speedup is 3748604.58 (DRY RUN). –

+0

С использованием rsync использование или неиспользование конечной косой черты «/» имеет решающее значение и должно выполняться правильно. Вы не следовали моему примеру точно ни в одном из ваших тестов. Это совершенно неинтуитивно, и мне потребовалось некоторое время, чтобы поправиться. На первом аргументе должна быть конечная косая черта, а вторая - на второй. Это заберет все файлы в «mydirname» и поместит их под «target». – Hankster

+0

Thankyou Hankster! Я понимаю важность «/», поэтому я настоял на этом. Чтобы сделать мой вопрос более ясным: поскольку раньше я использовал команду «mv», целевая папка «/ xyz/target» уже имеет (часть) исходную папку «mydirname» и ее подкаталоги. Итак, вы бы посоветовали мне использовать 1. «rsync -avn mydirname// xyz/target» или, 2. "rsync -avn mydirname// xyz/target/mydirname" или, 3. "rsync -avn mydirname/xyz/target/mydirname" или, 4. "rsync -avn mydirname// xyz/target/mydirname /" или что-нибудь еще? –

 Смежные вопросы

  • Нет связанных вопросов^_^