Bash-task — различия между версиями

Материал из VAAL-WIKI
Перейти к: навигация, поиск
м (bash_task_Обновление)
м (bash_task Обновление решения №3)
Строка 95: Строка 95:
 
<spoiler text="Вариант решения Задачи №3"><source lang="bash">
 
<spoiler text="Вариант решения Задачи №3"><source lang="bash">
 
#!/bin/env bash
 
#!/bin/env bash
 
 
reg_u=$(who |awk {'print $1'})
 
reg_u=$(who |awk {'print $1'})
 
xdate=$(date +%Y-%m-%d_%H-%M-%S)
 
xdate=$(date +%Y-%m-%d_%H-%M-%S)
 
upt=$(uptime -p |sed -e 's|up||g' -e 's|day.|дня(-ей)|' -e 's|hour.|час(-а,-ов)|' -e 's|minute.|минут(-ы)|')
 
upt=$(uptime -p |sed -e 's|up||g' -e 's|day.|дня(-ей)|' -e 's|hour.|час(-а,-ов)|' -e 's|minute.|минут(-ы)|')
upt_w=$(uptime -p |sed -e 's|up||g' -e 's|week.|недель(-я,-и)|' -e 's|day.|дня(-ь,-ей)|' \
+
upt_w=$(uptime -p |sed -e 's|up||g' -e 's|week.|недель(-я,-и)|' -e 's|day.|дня(-ь,-ей)|' -e 's|hour.|час(-а,-ов)|' -e's|minute.|минут(-ы)|')
      -e 's|hour.|час(-а,-ов)|' -e's|minute.|минут(-ы)|')
+
 
 
log_sys(){
 
log_sys(){
         logger -i -t "Check Sys Params" Дата и время: $xdate \| Зарегистрированные в системе пользователи: $reg_u \
+
         logger -i -t "CSys" Дата\/время: $xdate \| Зарегистрированные в системе пользователи: $reg_u \| Время работы системы: $1
\| Время работы системы: $1
+
 
}
 
}
  
if [ $(uptime|awk {'print $3'}) -gt 7 ]; then log_sys $upt_w; else log_sys $upt_w; fi
+
if [ $(uptime|awk {'print $3'}) -gt 7 ]; then log_sys "$upt_w"; else log_sys "$upt"; fi
 
+
log_sys
+
  
 
exit 0
 
exit 0

Версия 10:47, 20 февраля 2018

Задача №1

Используя цикл и оператор выбора написать скрипт, реализующий следующее:

  • Выводит на экран(в терминал) меню с выбором, состоящим из двух пунктов "1)" "2)"
  • При выборе "1)" выводит текст на экран(в терминал), содержащий только цифру 1
  • При выборе "2)" выводит текст на экран(в терминал), содержащий только цифру 2
  • При вводе любого другого символа, выводит на экран сообщение о неправильном вводе и просит повторить ввод.

При неправильном вводе цикл бесконечен, т.е. продолжается пока не будет введён нужный символ, а затем снова выводится меню выбора. Модернизировать(№1) скрипт так, чтобы при неправильном вводе он выводил сообщение о выходе из скрипта через три секунды, после трёх секунд ожидания осуществляется выход из скрипта. Модернизировать(№2) скрипт добавив в него возможность прекращения работы в меню.

Вариант решения Задачи №1

Задача №2

Написать скрипт реализующий следующее:

  • Создать функцию, которая реализует вывод списка директорий в файл /tmp/dir_list.log. При этом в качестве входного аргумента для функции служит переданный скрипту параметр, представляющий из себя абсолютный путь.
  • Создать функцию, которая будет считывать содержимое /tmp/dir_list.log и выводить на экран, а также копировать это содержимое в /tmp/dir_list.0.
  • Вызов функций происходит с задержкой в 5 секунд.
  • После успешной отработки скрипта и выхода из него файлы /tmp/dir_list.log и /tmp/dir_list.0 должны быть автоматически удалены. Для этого пункта запрещается прямой вызов `rm -rf` или $(rm -rf) перед завершением скрипта.

Подсказки для задачи №2

Вариант решения Задачи №2

Задача №3

Написать скрипт, который передаёт всю полученную в ходе своей работы информацию в системный журнал:

  • Дату и время в формате ГГГГ-ММ-ДД_ЧЧ-ММ-СС.
  • Список зарегистрировавшихся в системе,на текущий момент, пользователей.
  • Время работы системы(вывод должен быть представлен кириллицей).

В консоли продемонстрировать вывод верно работающего скрипта.

Вариант решения Задачи №3