Особенности

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

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 — наш скрипт
Читать далее

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


Всем привет!
Тут мы немного побаловались с консолью и командами.
Поехали)

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

#!/bin/bash
freemem=$(free -m | grep Mem | sed 's/\s\+/ /g' | cut -d' ' -f4)
datetime=$(date +\%Y-\%m-\%d@\%R)
if (( $freemem < 100 ))
then
echo "$datetime $freemem Mbytes free RAM memory < 100 Mbytes"
else
echo "$datetime $freemem Mbytes free RAM memory"
fi

Пояснение:
1. Файл
Быстренько создаем файл free-mem.sh (расширение весьма условное) и присваиваем атрибут исполняемости.
touch ./free-mem.sh
chmod +x ./free-mem.sh
Читать далее