LINUX.ORG.RU

Помогите решить задачу. очень нужно)

 


0

1

Для того чтобы не допустить потерю информации при порче диска, обычно используют резервное копирование файлов (backup). Простейшей формой backup’а является копирование всех файлов из одной директории в другую. Этот способ требует много времени и места на диске. Напишите программу, осуществляющую более интеллектуальный подход. Программа должна брать из командной строки два параметра: исходную директорию и директорию назначения. Она должна рекурсивно сканировать исходную директорию, делать копии всех файлов, для которых ранее не делались копии или которые были изменены с момента последнего backup’а, размещая их в соответствующих местах директории назначения. После копирования каждого файла должна вызываться команда сжатия gzip. Это уменьшит требуемый размер дисковой памяти; а файл будет переименован с добавлением расширения .gz. Все возникающие ошибки (нет исходной директории, файл закрыт для чтения и т.д.) должны корректно обрабатываться с выдачей соответствующего сообщения.

Напишите пожалуйста


Отписал в личку)

anonymous
()

более интеллектуальный подход
брать из командной строки два параметра

После копирования каждого файла

Энтерпрайз такой энтерпрайз.

Deleted
()

Буквально сейчас доделываю скрипт что умеет выполнять ваше жлание.
Только вот в вашей постановке - это рабочая задача, что есть не красиво.
Кастуйте в job - сделаю досрочно.
В противном случае ждите когда закончу свой скрипт, потом если выложу его - сможете посмотреть что да как.

Spirit_of_Stallman ★★★
()
Последнее исправление: Spirit_of_Stallman (всего исправлений: 1)

По всем параметрам, кроме сжатия - rsync. Регулярно пользуюсь.

Что до сжатия - посмотри фс с прозрачным сжатием: http://en.wikipedia.org/wiki/Comparison_of_file_systems .

А вообще, сжатие не нужно, ибо когда копируешь действительно инфы, как правило это музыка, видео, картинки и другие бинарники, которые не шибко сжимаются.

Kroz ★★★★★
()

Хм. Достаточно простой скрипт.

- Делаете ls исходного каталога.

- Далее в цикле проверяете наличие файла в целевом каталоге.

- Если файл есть, проверяете MD5 (SHA1, SHA256... etc). Если хеш не совпадает - копируете исходный файл в целевой каталог, сжимая через gzip. Заодно кладете в целевой каталог хеш исходного файла, с которым потом будете сравнивать.

- Если файла нет - копируете исходный файл в целевой каталог, сжимая через gzip. Заодно кладете в целевой каталог хеш исходного файла, с которым потом будете сравнивать.

Собственно, всё.

wheel
()

порче диска
копирование всех файлов из одной директории в другую.

/0

YAR ★★★★★
()
Последнее исправление: YAR (всего исправлений: 1)

Напишите программу, осуществляющую более интеллектуальный подход.

http://www.bacula.com/en/

sin_a ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.