🏠 Домашнее задание 13

К оглавлению урока

⚡ Что нужно сделать

  1. Создать папку со своим именем на linux.itcareerhub.de
  2. Написать скрипт task_NAME.sh, создающий 10 файлов с датой (1_20.04.23 .. 10_20.04.23)
  3. Добавить в crontab запуск каждые 15 минут: */15 * * * *
  4. Создать архив с файлами + историей команд
  5. Закомментировать задание в crontab (добавить #)

Текст задания (из LMS)

Создайте папку со своим именем в на сервере linux.itcareerhub.de. В папке с Вашим именем создайте скрипт task_NAME.sh, где NAME — Ваше имя.

  1. Скрипт должен создавать по 10 файлов с порядковым номером и датой создания. 1_20.04.23, 2_20.04.23, 3_20.04.23 .. 10_20.04.23
  2. Создайте в планировщике новое задание, которое должно будет запускать Ваш скрипт каждые 15 минут.
  3. Создайте архив с файлами из п.1, добавьте в него историю команд, которую вы выполнили.
  4. Закомментируйте строку с заданием в планировщике (добавьте # в начало строки с вашим заданием), чтобы выключить задание, но оставить его «в быстром доступе».

Что пригодится: date +"%d.%m.%y", touch, export EDITOR=nano, crontab -l, crontab -e, Crontab.guru

Однострочник, создающий простейший скрипт в /tmp: echo -e `#!/bin/bash\n date\n echo "it works!"` > /tmp/script.sh

Подготовка окружения

Подключение к серверу

# Подключиться к серверу linux.itcareerhub.de (данные для подключения — у куратора)
ssh user@linux.itcareerhub.de

Создание рабочей директории

# Создать папку со своим именем (замените NAME на ваше имя)
mkdir -p /home/NAME
cd /home/NAME

Установить предпочтительный редактор

# Если хотите использовать nano вместо vi при crontab -e:
export EDITOR=nano

Пошаговое решение

Шаг 1. Создать скрипт task_NAME.sh

Создайте файл скрипта (замените NAME на ваше имя):

# /home/NAME/task_NAME.sh

#!/bin/bash
# Скрипт создаёт 10 файлов с порядковым номером и датой

DATE=$(date +"%d.%m.%y")

for i in {1..10}
do
    touch "${i}_${DATE}"
done

echo "Created 10 files with date: $DATE"

Сохраните скрипт и сделайте его исполняемым:

chmod +x /home/NAME/task_NAME.sh

Шаг 2. Проверить работу скрипта

cd /home/NAME
bash task_NAME.sh
ls -la

Вы должны увидеть файлы: 1_20.04.23, 2_20.04.23, ..., 10_20.04.23

Шаг 3. Добавить задание в crontab (каждые 15 минут)

crontab -e

В редакторе добавить строку:

*/15 * * * * /home/NAME/task_NAME.sh >> /home/NAME/task.log 2>&1

Сохранить и выйти. Проверить задание:

crontab -l

Шаг 4. Создать архив с файлами и историей команд

Сначала сохраняем историю команд:

history > /home/NAME/history.txt

Создаём архив (из папки /home/NAME):

cd /home/NAME
tar -czf archive.tar.gz *.*

Проверяем содержимое архива:

tar -tf archive.tar.gz

Шаг 5. Закомментировать задание в crontab

crontab -e

Найти строку с заданием и добавить # в начало:

# */15 * * * * /home/NAME/task_NAME.sh >> /home/NAME/task.log 2>&1

Закомментированное задание не выполняется, но остаётся «в быстром доступе» — его легко раскомментировать.

Шаг 6. Отправить ответ

Загрузите скрипт на GitHub и пришлите ссылку куратору, или отправьте непосредственно содержимое скрипта.