2013-09-24 1 views
0

Мне нужно сделать резервную копию большого сервера в FTP-хранилище. Я могу tar все файлы, я могу загрузить с помощью FTP, и я могу разделить tar-файл на множество небольших файлов.tar очень большие файлы на FTP, напрямую разбитые на более мелкие файлы

Но проблема в том, что я не могу выполнить эти три шага за один шаг. Я могу использовать tar для FTP напрямую, я могу использовать tar с split, но не могу tar с FTP и сплит.

ОС CentOS 6.2 Файлы, размер больше, чем 800G

Благодаря

+0

Почему это должно быть сделано в один шаг? Есть ли причина, по которой вы не можете написать сценарий оболочки для выполнения всех трех шагов? Если дисковое пространство является проблемой, как насчет использования 'rsync' вместо tar-ing и FTP-ing? –

+0

Число шагов не является проблемой, я не могу сохранить сжатый файл на том же сервере. Мне нужно сделать запланированную резервную копию, чтобы сжать полную систему (каждую неделю) и сохранить ее на FTP-сервере и инкрементную резервную копию каждый день. Так что мне нужен сценарий, но как? : D – Tareq

+0

Можете ли вы SSH на удаленный сервер? Вот [указания по использованию «tar» с удаленным сервером через туннель SSH] (http://www.cyberciti.biz/faq/howto-use-tar-command-through-network-over-ssh-session/) , –

ответ

2

Чтобы можно очернить, расщепляется и FTP каталога с одной командной строкой вам нужна следующим:

раздельной команды записи только стандартным вывод, так что вы не можете передать файл в другую команду, как FTP к процессу для этого вам нужно запланировать разделение, чтобы использовать опцию --filter, чтобы передать выходной файл на ftp «на лету» без необходимости сохранения на жесткий диск, настроив переменную окружения $ FILE с выходным файлом (имена файлов будут x00, x01, x02 ...).

1) Вот разделенный патч: http://lists.gnu.org/archive/html/coreutils/2011-01/txt3j8asgk8WH.txt После исправления команды split вы увидите у человека, что опция -filter доступна в вашей команде split.

2) установите клиент ftpp ftp, который является хорошим ftp-клиентом, который позволяет вам подключаться к ftp и помещать файл в одну строку, не дожидаясь ответа ftp, как обычный ftp-клиент. ncftp полезен для интеграции со сценариями и т. д.

здесь является команда, которая будет сжимать/домашний каталог с дегтем разделить его 100Мб небольшие файлы и передавать каждый файл через FTP

tar cvz -i /home | split -d -b 100m --filter 'ncftpput -r 10 -F -c -u ftpUsername -p ftpPassword ftpHost $FILE' 

к сведению, что мы использовали ncftpput что бы скоротать $ FILE для FTP в одна команда тоже. дополнительные параметры ftp: -r 10: позволяет попытаться повторно подключиться 10 раз после потери соединения с ftp. -F: использовать пассивный режим. -c: принимает входные данные от stdin.

Чтобы объединить разделенные файлы (x00, x01, x02, x03 ...), чтобы можно извлечь использование файла следующую команду

cat x* > originalFile.tar 
+0

большое спасибо. удивительные решения. оно работает – Tareq

1

Вы можете сделать скрипт, и использовать

tar zcf - /usr/folder | split -b 30720m - /usr/archive.tgz 

, а затем загрузить его на FTP и потому, что, как только вы делая tar и помещая на FTP, тогда как вы можете разделить.

+0

Спасибо за ваш ответ. – Tareq

+0

Я не могу сохранить сжатый файл на том же сервере, нет свободного места. – Tareq

+0

Итак, это означает, что у вас заканчивается свободное пространство, поэтому вы должны быть уверены, что у вас достаточно места для хранения сжатых файлов или прикрепить бесплатный диск или раздел для сохранения файлов. –