Скопируйте файлы между двумя удаленными NAS через FTP
предосторожность
Эта статья была опубликована более чем год назад, там, возможно, были события.
Пожалуйста, примите это во внимание.
Сегодняшний случай очень нишевый, и я не уверен, что найдется много пользователей, которым нужен мини-гайд, подобный сегодняшнему.. Но это случилось со мной, и сейчас я расскажу вам об этом..
Недавно я приобрел старый микросервер HP N40L Proliant., на котором я установил openmediavault, дистрибутив на основе Debian, который позволяет вам управлять вашей системой точно так же, как классической безголовой системой Linux, и легко настроить общие ресурсы (SMB/CIFS, NFS, FTP, SSH), Докер, еще одно резервное копирование, подпрограммы cron… и многое другое.
Теперь мне нужно перенести данные со старого NAS на этот..
К сожалению, старый NAS — это электроника, не обладающая высокой производительностью.. Есть место для диска, элементарное управление акциями SMB, FTP, сервер DLNA и менеджер битторрентов, которые я никогда не мог заставить работать. Система форматирует диск собственной файловой системой, о которой я не нашел информации в Интернете, и даже вставив старый диск в один из слотов на сервере HP, диск распознается, но файловая система не интерпретируется.
то, я скопирую данные между двумя подключенными к сети устройствами, даже если старый NAS не имеет гигабитного порта.
Я могу подключиться к микросерверу HP по любому протоколу, Я думаю, что я буду использовать SSH, но к старому NAS я могу подключиться только по SMB или FTP… я не особо в восторге, но я поправлюсь.
начинаю подключаться к серверу:
joe@joe-toshiba:$ ssh -t root@192.168.5.10
The authenticity of host 'server_addr (192.168.5.10)' can't be established.
ECDSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.5.10' (ECDSA) to the list of known hosts.
root@server_addr's password:
Linux nas 5.19.0-0.deb11.2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 5.19.11-1~bpo11+1 (2022-10-03) x86_64
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sun Nov 27 02:46:35 2022 from 192.168.5.201
root@nas:~#
Отсюда мне нужно будет перейти в каталог внутри одного из дисков, содержащих данные. OMV монтирует диски в каталог с именем /srv/
. Я уже установил и настроил mergerfs
, программа, позволяющая использовать два диска с разным содержимым “присоединиться” в одном ресурсе. Возможно, мы поговорим об этом в другой статье.
root@nas:~# cd /srv/mergerfs/Public/nas/
На данный момент я уже знаю, что хочу скопировать каталог “Общественный” со старого NAS и все его содержимое. Мне нужно запустить FTP-команду, которая подключит меня и начнет копирование всех данных в фоновом режиме.. Я не хочу держать ноутбук включенным на время операции только для того, чтобы не прерывать запущенный процесс.
Самая простая команда, которую я могу запустить, — это evergreen wget
.
# wget -rb ftp://joe:My5ecreTp4ssword@192.168.5.2/Public/
опция -r
позволяет возобновить загрузку большого усеченного файла (даже случайно) где остановилась загрузка. Пока с -b
Я поставил процесс в фоновом режиме.
Однако таким образом мой пароль останется незашифрованным в истории терминала. (если вы решите не очищать историю). И это также останется незашифрованным среди серверных процессов. (ps
, top
, htop
…):
# ps ax | grep wget
271089 ? Rs 26:44 wget -rb ftp://joe:My5ecreTp4ssword@192.168.5.2/Public/
274190 pts/2 S+ 0:00 grep wget
Возможно, я мог бы создать однострочный скрипт, который резюмирует команду… но, может быть, проще создать файл .wgetrc
который содержит учетные данные.
## Credentials for the good ol' NAS @ 192.168.5.2
user=joe
password=My5ecreTp4ssword
Как только файл будет сохранен в доме пользователя, я смогу запустить загрузку через FTP без указания учетных данных..
# wget -rb ftp://192.168.5.2/Public/
Если я понимаю, что совершил ошибку, и хочу остановить команду, которая сейчас находится в фоновом режиме, я всегда могу это сделать. “ребята” по старинке. Как мы видели раньше “ps ax | grep wget
” показывает процесс и его PID, в то время как “kill PID_ID
” это убьет процесс (заменять PID_ID
с реальным PID, чтобы убить).
0 Комментарии