Написание скрипта под юникс

Вопросы написания собственного программного кода (на любых языках)

Модератор: Olej

Кирилл

Написание скрипта под юникс

Непрочитанное сообщение Кирилл » 07 май 2015, 18:56

С программированием я никогда не связывался и к юниксу имею очень маленькое отношение. Но начал учиться и сейчас у меня задание :Написать скрипт, производящий очистку указанной директории путем архивирования и сжатия (.tar.gz) всех файлов старше указанного времени. К архиву должен прилагаться скрипт, позволяющий откатить сделанные изменения (т.е. распаковать архив и разложить файлы обратно по директориям). Расскажите по подробней пожалуйста что это и с чем это едят)))

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Написание скрипта под юникс

Непрочитанное сообщение Olej » 08 май 2015, 09:50

Кирилл писал(а):Но начал учиться и сейчас у меня задание :Написать скрипт, производящий очистку указанной директории путем архивирования и сжатия (.tar.gz) всех файлов старше указанного времени. К архиву должен прилагаться скрипт, позволяющий откатить сделанные изменения (т.е. распаковать архив и разложить файлы обратно по директориям). Расскажите по подробней пожалуйста что это и с чем это едят)))
Писать скрипт я за вас не стану - это моя принципиальная позиция, я не помогаю тем, кто не хочет сам ... поупираться рогами ;-)
А рассказать подробнее? ... Это пожалуйста ;-) :

1. вам нужно любым текстовым редактором написать в файл с любым именем последовательность команд на языке shell (а скорее на его расширении bash), которые и выполнят ваши действия (команды можете предварительно проверить "вручную" ;-) )...
2. после чего сделать этот свой файл (например zzz) исполнимым, типа:

Код: Выделить всё

$ chmod a+x zzz
3. по самому синтаксису языка bash есть замечательное руководство и его русский перевод "Искусство программирования на языке сценариев командной оболочки", ссылки найдёте в теме: Программирование сценариев bash. Там всё в сплошных примерах, все нужные вам действия там показаны, нужно только собрать и сложить в один файл.
4. По существу действий вашей задачи ...
Если вы "начали учить", то первое что нужно усвоить, что любая задача в программировании может решаться очень многими способами.
Вы можете в своей задаче:
4.1.
- сделать переменную скрипта...
- в цикле пробежать по всем именам файлов, и если они старше даты - добавить имя к переменной (через пробел)
- дальше вызываете утилиту tar (архиватор), передавая ей переменную последним параметром как список файлов архива.
- а затем по тому же списку удаляете файлы командой rm
4.2.
- можете в цикле ...
- поштучно добавлять каждый файл (если дата подходит) командой tar с ключом -r
- и тут же удалять этот файл
4.3.
- можете посмотреть в сторону ключа -u команды tar - "добавление в архив только более новых файлов" ...
- сделайте команды:

Код: Выделить всё

$ tar --help
$ man tar
Там всё написано.

Ну а откатить сделанные изменения - это просто разархивировать ваш архив и удалить его:

Код: Выделить всё

$ tar -zxvf aaa.tgz
$ rm aaa.tgz
Вот это (проверив команды!) и нужно записать в файл скрипта отката.

Ответить

Вернуться в «Программирование»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 5 гостей