Bash-скрипты. Урок 6


Всем привет!
Тут предыдущий урок
Поехали)

Задача:
Найти файлы без права чтения у групп «group»,»other» в директории с вложенностью 1  и вывести подробную информацию по найденным файлам.

Решение:
find /etc -maxdepth 1 -type f ! -perm /go=r -exec ls -l {} \;
Читать далее

Умная жена

Взял я на днях у товарища шуруповерт поработать, до этого крутил дрелью. Поработал — понравилось.
Делюсь впечатлениями с женой: «Какое полезное изобретение. Надо себе прикупить».
Супруга интересуется на предмет полезных отличий от дрели. Она у меня толковая, в таких вещах мал-мал разбирается.
Ну объясняю: «Понимаешь, у тебя есть швейная машинка, ею ты можешь обметывать края ткани. В принципе приемлемо. Но есть ведь такая вещь, как оверлок, которой проделывать такую операцию гораздо-гораздей».
Поняла, призадумалась. Пришлось к шуруповерту покупать оверлок.

Bash-скрипты. Урок 5


Всем привет!
Тут предыдущий урок
Поехали)

Задача:
Выбрать из системного журнала события ntpd, связанные с прослушиванием localhost или 127.0.0.1.

Решение:
journalctl --since "2 day ago" | grep -P 'ntpd.*localhost|ntpd.*127\.0\.0\.1'

Пояснение:
1. journalctl
С помощью journalctl можно просматривать системный журнал, получая необходимую информацию для анализа работы и отладки различных системных компонентов и приложений.
Читать далее

Особенности

Сижу дома, смотрю телек, жизнью наслаждаюсь. Слышу на лестничной клетке какая-то возня. Решил выглянуть — вдруг соседей кто гробануть решил. Должен заметить, что с соседями на той квартире вообще не общались никогда. Даже не знали кто живет рядом, так виделись иногда. Какие-то все замкнутые оказались, необщительные. Ну да ладно, это было отступление.
Выхожу на площадку — стоит возле щитка мужик. Явно сосед, ибо в домашнем. Но я его никогда не видел раньше. Стоит он, смотрит то на меня, то на щиток. Явно хочет что-то спросить, но не решается. Я поинтересовался может помощь нужна какая. И тут оказывается, что это американец! Живой американец стоит у меня на площадке и на ломанном русском пытается мне что-то сказать! Вот это новость! Ну я решил проявить всю свою культур-мультур и предложил пообщаться на единственном известном ему языке.
Читать далее

Bash-скрипты. Урок 4 (специальный выпуск)


Всем привет!
Тут предыдущий урок
Поехали)

Задача: Убрать права на чтение всех подкаталогов каталога, указанного первым аргументов командной строки. Описать последствия исполнения команды. Вернуть права на исполнение.
Решение:

#!/bin/bash
#Проверяем наличие передаваемого параметра
if (($# < 1))
then
echo "Usage: $0 {directory}";
echo "Example: $0 ./";
exit
fi
directory=$1
echo "-------------------------------------------"
echo "Рекурсивно читаем права заданной директории"
echo "(файлы, каталоги, подкаталоги)"
echo "ls -R -l $directory"
ls -R -l $directory
echo "-------------------------------------------"
echo "Рекурсивно убираем право на чтение у всех групп"
echo "(файлы, каталоги, подкаталоги)"
echo "chmod -R a-r $directory"
chmod -R a-r $directory
echo "-------------------------------------------"
echo "Рекурсивно читаем права заданной директории после удаления прав на чтение"
echo "(файлы, каталоги, подкаталоги)"
echo "ls -R -l $directory"
ls -R -l $directory
echo "-------------------------------------------"
echo "Рекурсивно добавляем право на выполнение всем каталогам и подкаталогам"
echo "(каталоги, подкаталоги)"
echo "chmod -R a+X $directory"
chmod -R a+X $directory
echo "-------------------------------------------"
echo "Рекурсивно читаем права заданной директории после добавления права на выполнение"
echo "(каталоги, подкаталоги)"
echo "ls -R -l $directory"
ls -R -l $directory
echo "-------------------------------------------"

Пояснение:
1. Полномочия
Читать далее

Bash-скрипты. Урок 3


Всем привет!
Тут предыдущий урок
Поехали)

Задача: найти в директории файлы созданные позднее 100 дней и вывести список в файл. Дни, имя директории и имя списка передать как аргументы при запуске скрипта.
Решение:

#!/bin/bash
if (($# < 3))
then
echo "Usage: $0 {daysago} {directory} {outputfile}";
echo "Example: $0 100 ./ outputfile.txt";
exit
fi
daysago=$1
directory=$2
outputfile=$3
find $directory -iregex ".*" -type f -mtime +$daysago > $outputfile

Пояснение:
1. Встроенные переменные
Для передачи данных скриптам используем параметры командной строки. Вызвав скрипт с параметрами, мы передаём информацию, с которой он может работать.
list-old-files.sh — наш скрипт
Читать далее