Могу ли я разветвить команду копирования на ReadyNAS SSH?

661
codedog

У меня есть ReadyNAS 102 с несколькими подключенными USB-накопителями и подключением к нему с компьютера под управлением Windows 8 через SSH. Были моменты, когда я хотел копировать файлы между томами на NAS. К сожалению, я также случайно отключил процесс копирования, случайно закрыв сеансы SSH.

Возможно ли для меня форк cpили mvпроцесс на SSH? В настоящий момент, когда я закрываю сеанс SSH, будь то случайное закрытие окна терминала или закрытие экрана моего ноутбука и перевод его в спящий режим, процесс копирования останавливается.

Могу ли я сделать что-то подобное, cp ~/blah /some/other/path &и можно ли продолжать процесс в фоновом режиме, даже если сеанс SSH завершен?

0
Что вы имеете в виду под «форком процесса` cp` или `mv`"? Обычно shell уже разветвляется и выполняет эти программы. Какова ваша цель? Возобновление копий? Смотрите "rsync". Lekensteyn 9 лет назад 1
Я отредактировал вопрос, чтобы, надеюсь, прояснить его немного лучше. codedog 9 лет назад 0
Комментарий о `rsync` был лучшим ответом здесь. Я выполнил простой `rsync -r / path / to / source / path / to / destination &`, вышел из удаленного сеанса SSH и оставил его на некоторое время. Подключился снова через SSH, чтобы проверить пункт назначения и ... вуаля! Все файлы были скопированы! Спасибо @Lekensteyn за предложение. Если вы хотите включить это в ответ, я буду голосовать за него. codedog 9 лет назад 0
Если `rsync` прерван, у вас останется временный файл. Это просто помогает вам, не копируя существующие файлы. Что вам действительно нужно для постоянных сессий, так это GNU screen aste by Jake. Lekensteyn 9 лет назад 1

1 ответ на вопрос

1
Jake

You are looking for gnu screen

Screen is a full-screen window manager that multiplexes a physical terminal between several processes, typically interactive shells. Each virtual terminal provides the functions of the DEC VT100 terminal and, in addition, several control functions from the ANSI X3.64 (ISO 6429) and ISO 2022 standards (e.g., insert/delete line and support for multiple character sets). There is a scrollback history buffer for each virtual terminal and a copy-and-paste mechanism that allows the user to move text regions between windows. When screen is called, it creates a single window with a shell in it (or the specified command) and then gets out of your way so that you can use the program as you normally would. Then, at any time, you can create new (full-screen) windows with other programs in them (including more shells), kill the current window, view a list of the active windows, turn output logging on and off, copy text between windows, view the scrollback history, switch between windows, etc. All windows run their programs completely independent of each other. Programs continue to run when their window is currently not visible and even when the whole screen session is detached from the users terminal.

In a nutshell it allows you to create "virtual terminals" that remain active until you kill them yourself. Any process running in a screen session remains active. If your ssh session terminates you just start a new session and re-attach the screen.

This article provides a good tutorial

Моя ошибка, я не упомянул, что подключаюсь с компьютера с Windows 8. Ваш ответ применим только к * nix клиентам? codedog 9 лет назад 0
Да, это пакет * nix, но быстрый поиск показывает, что readynas os является форком Debian, поэтому простой экран установки apt-get на терминале readynas должен помочь. Машина, которую вы используете для подключения, может быть любой ОС, важно то, что на удаленной машине установлен экран. Jake 9 лет назад 0
Вы абсолютно правы. Вместо этого я установил byobu, но, насколько я могу судить, это всего лишь немного более необычный экран GNU. codedog 9 лет назад 0
Я еще не знал byobu, собираюсь попробовать это на моем mediaserver @ home. Jake 9 лет назад 0