Индивидуальные задания к лабораторной работе "Скрипты оболочки Bash"
Вариант 1.
- Напишите скрипт, подсчитывающий количество скрытых файлов в домашнем каталоге пользователя. Поиск без захода в подкаталоги, скрытые каталоги не учитывать.
- Создайте три файла один без расширения и два с расширениями: .lib, .doc. Напишите скрипт установки приложения, состоящего из этих файлов, выполняющий следующие действия:
- файл без расширения помещается в каталог /usr/bin, устанавливаются права на выполнение всем членам группы user.
- файл c расширением .lib помещается в каталог /usr/lib,
- файл с расширением .doc помещается в каталог /usr/share/doc/фамилия
- Напишите скрипт, получающий от пользователя (любым способом ) имя каталога, расширение файлов и строку поиска. Скрипт должен найти все файлы с указанным расширением, содержащие указанную строку. Результат следует записать в файл /var/log/фамилия.log.
- При помощи утилиты
cron
настройте выполнение скрипта из предыдущего задания по пятницам каждые полчаса.
Вариант 2
- Напишите скрипт, подсчитывающий количество скрытых подкаталогов в домашнем каталоге пользователя. Поиск без захода в подкаталоги, скрытые файлы не учитывать.
- Создайте три файла один без расширения и два с расширениями: .lib, .conf. Напишите скрипт установки приложения, состоящего из этих файлов, выполняющий следующие действия:
- файл без расширения помещается в каталог /usr/bin, устанавливаются права на выполнение всем членам группы user.
- файл c расширением .lib помещается в каталог /usr/lib/фамилия ,
- файл с расширением .conf помещается в каталог /etc/фамилия и в него заносится путь к установленной библиотеке и исполняемому файлу.
- Напишите скрипт, получающий от пользователя (двумя способами) имя приложения. Скрипт должен найти в каталоге /var/log/ и его подкаталогах все файлы в которых упоминается указанное приложение. Список найденных файлов следует записать в файл /var/log/фамилия.log.
- При помощи утилиты
cron
настройте выполнение скрипта из предыдущего задания каждый час в пятницу 13 чсила любого месяца.
Вариант 3.
- Напишите скрипт, при помощи которого можно найти самый большой файл в домашнем каталоге пользователя. Поиск без захода в подкаталоги, скрытые файлы учитывать.
- Создайте три файла один без расширения и два с расширениями: .lib, .conf. Напишите скрипт установки приложения, состоящего из этих файлов, выполняющий следующие действия:
- файл без расширения помещается в каталог /opt/название, устанавливаются права на выполнение всем членам групп user и guest.
- файл c расширением .lib помещается в каталог /usr/lib/название ,
- файл с расширением .conf помещается в каталог /etc/фамилия и в него заносится путь к установленной библиотеке и исполняемому файлу.
- Напишите скрипт, получающий от пользователя (двумя способами) PID процесса. Скрипт должен определить название приложение, объем используемой памяти, владельца процесса и время его работы. Результат следует записать в файл /var/log/фамилия.log.
- При помощи утилиты
cron
настройте выполнение скрипта из предыдущего задания каждый понедельник в 8:30.
Вариант 4
- Напишите скрипт, подсчитывающий размер не скрытых подкаталогов в домашнем каталоге пользователя и записывающую результат в виде таблицы в отдельный файл
- Создайте три файла один без расширения и два с расширениями: .lib, .res. Напишите скрипт установки приложения, состоящего из этих файлов:
- файл без расширения помещается в каталог /usr/bin, устанавливаются права на выполнение всем членам группы user.
- файл c расширением .lib помещается в каталог /usr/lib,
- файл с расширением .res помещается в каталог /share/фамилия и в него заносится путь к установленной библиотеке и исполняемому файлу.
- Напишите скрипт, упаковывающий все файлы текущего каталога с одинаковыми расширениями в архив и размещающий этот архив в каталоге /var/backups/текущая дата. Поиск без захода в подкаталоги, скрытые файлы не учитывать. Например: для даты 01.02.2012 и каталога, в котором имеется 3 файла с расширением txt и пять файлов с расширением doc, в результате действия в скрипта в каталоге /var/backups/20120201 должны появиться два новых архива. Один с именем txt, другой с именем doc.
- При помощи утилиты
cron
настройте выполнение скрипта из предыдущего задания по пятницам каждые полчаса. - При помощи утилиты
cron
настройте выполнение скрипта из предыдущего задания по четным числам каждого месяца в 12:00.
Вариант 5
- Напишите скрипт, подсчитывающий количество файлов в домашнем каталоге пользователя, созданных или измененных сегодня. Поиск с заходом в подкаталоги, скрытые подкаталоги не учитывать.
- Создайте три файла один без расширения и два с расширениями: .lib, .doc. Напишите скрипт установки приложения, состоящего из этих файлов:
- файл без расширения помещается в каталог /usr/bin, устанавливаются права на выполнение всем членам группы user.
- файл c расширением .lib помещается в каталог /usr/lib,
- файл с расширением .doc помещается в каталог /usr/share/doc/фамилия
- Напишите скрипт, получающий от пользователя (двумя способами) имя каталога и размер N в мегабайтах. Скрипт должен найти в указанном каталоге все файлы размера больше N, упаковать каждый из них в архив, удалить исходный файл и создать пустой файл с таким же именем. Отчет о выполненных скриптом действиях следует записать в файл /var/log/фамилия.log.
- При помощи утилиты
cron
настройте выполнение скрипта из предыдущего задания каждый будний день в 12:00.
Вариант 6
- Напишите скрипт, создающий сводку по имеющимся файлам в текущем каталоге, с информацией: имя, расширение, дата изменения, права доступа, размер. Поиск с заходом в подкаталоги, скрытые подкаталоги не учитывать.
- Создайте три файла один без расширения и два с расширениями: .lib, .conf. Напишите скрипт установки приложения, состоящего из этих файлов:
- файл без расширения помещается в каталог /usr/bin, устанавливаются права на выполнение всем членам группы user.
- файл c расширением .lib помещается в каталог /usr/lib/фамилия ,
- файл с расширением .conf помещается в каталог /etc/фамилия и в него заносится путь к установленной библиотеке и исполняемому файлу.
- Напишите скрипт, получающий от пользователя (двумя способами) имя каталога. Скрипт должен использовать сравнить информацию о файлах, полученную в результате работы скрипта из первого задания с текущим состоянием файловой системы и все изменения записать в файл /var/log/фамилия.log.
- При помощи утилиты
cron
настройте выполнение скрипта из предыдущего задания по выходным в 14:00 и в 19:00.
Вариант 7
- Создайте скрипт, печатающий сводку по указанному каталогу: количество текстовых файлов (*.txt), количество исполняемых файлов (установлен атрибут х), количество каталогов, и количество всех остальных файлов.
- Создайте три файла один без расширения и два с расширениями: .data, .cfg. Напишите скрипт установки приложения, состоящего из этих файлов:
- файл без расширения помещается в каталог /usr/bin, устанавливаются права на выполнение всем членам группы user.
- файл c расширением .data помещается в каталог /home/ИмяПользователя/.фамилия ,
- файл с расширением .cfg помещается в каталог /etc/фамилия и в него заносится путь к установленной библиотеке и исполняемому файлу.
- Измените скрипт из первого задания так, чтобы он получал от пользователя (двумя способами) имя каталога, а затем сравнивал информацию о файлах, полученную в результате предыдущего запуска (результаты предыдущего запуска следует сохранять в каталоге /home/ИмяПользователя/.фамилия) с текущим состоянием файловой системы и записывающий все изменения в файл /var/log/фамилия.log.
- При помощи утилиты
cron
настройте выполнение скрипта из предыдущего задания по средам каждые 12 минут с 12 до 16 часов.
Вариант 8
- Создайте скрипт, который для всех файлов в указанном каталоге с расширением *.run, устанавливает атрибут х. Обязательно обрабатывать подкаталоги.
- Создайте три файла один без расширения и два с расширениями: .lib, .res. Напишите скрипт установки приложения, состоящего из этих файлов:
- файл без расширения помещается в каталог /usr/bin, устанавливаются права на выполнение всем членам группы user.
- файл c расширением .lib помещается в каталог /usr/lib,
- файл с расширением .res помещается в каталог /share/фамилия и в него заносится путь к установленной библиотеке и исполняемому файлу.
- Измените скрипт из первого задания так, чтобы он получал от пользователя (двумя способами) имя каталога, а затем выполнял необходимо действие с одновременной записью всех выполненных изменений в файл /var/log/фамилия.log.
- При помощи утилиты
cron
настройте выполнение скрипта из предыдущего зимой в будние дни в 8:00.
Вариант 9
- Напишите скрипт, подсчитывающий размер не скрытых подкаталогов в домашнем каталоге пользователя и записывающую результат в виде таблицы в отдельный файл.
- Создайте три файла один без расширения и два с расширениями: .lib, .doc. Напишите скрипт установки приложения, состоящего из этих файлов, выполняющий следуюбщие действия:
- файл без расширения помещается в каталог /usr/bin, устанавливаются права на выполнение всем членам группы user.
- файл c расширением .lib помещается в каталог /usr/lib,
- файл с расширением .doc помещается в каталог /usr/share/doc/фамилия
- Напишите скрипт, получающий от пользователя (любым способом ) имя каталога, расширение файлов и строку поиска. Скрипт должен найти все файлы с указанным расширением, содержащие указанную строку. Результат следует записать в файл /var/log/фамилия.log.
- При помощи утилиты
cron
настройте выполнение скрипта из предыдущего задания в летние выходные дни в 17:00.