четверг, 5 декабря 2013 г.

вторник, 27 августа 2013 г.

uncomment.sh


Время от времени нужно избавиться от комментариев в конфигах, чтобы сравнить, например, чем он отличается от стандартного, помимо комментов. Да и суть ведь не в них. В общем скрипт, вызывается так:

uncomment /etc/raddb/radius.conf

#!/bin/bash

egrep -v "^\s*\t*\s*$" "$1" | egrep -v "^\s*\t*\s*#.*$" > "$1".uncommented
mv "$1.uncommented" "$1"

Удаляет пустые строки и комментарии.

воскресенье, 25 августа 2013 г.

четверг, 20 июня 2013 г.

Поиск того, что отъёло больше всего места на диске


Тупой написанный на коленке скрипт, подходящий для системы на одном разделе.

#!/bin/bash

get_first_2() {
du -s * 2>/dev/null | sort -nr | head -2 | awk '{print $2}'
}

cd /
for i in $(seq 0 3); do
for j in $(seq 0 $i); do
echo -n " "
done
dirs="$(get_first_2)"
echo $dirs
dir="$(echo "$dirs" | head -1)"
cd $dir
done

понедельник, 13 мая 2013 г.

Список выходных года на баше

К сожалению нашёлся небольшой косяк - пропускается часть воскресений и суббот в неполных неделях.

Пример для будущего ковыряния:

LANG=C cal 1 2013 | egrep -v "([a-z]^C$)"  | while read -a arr; do len=${#arr[@]}; let len--; echo ${arr[$len]}; done

и сам скрипт

#!/bin/bash

for i in $(seq 1 12); do 
LANG=C cal $i 2013 | grep -v "[a-z]" | while read t t t t t t day; do 
[ -n "$day" ] && date +"%Y-%m-%d Воскресение" --date="2013-$i-$day"
done
LANG=C cal $i 2013 | grep -v "[a-z]" | while read t t t t t day t; do 
[ -n "$day" ] && date +"%Y-%m-%d Суббота" --date="2013-$i-$day"
done
done

if [ -f add.txt ]; then
        while read date name; do 
        echo "$date" "$name"
        done < weeks.txt
fi

Результат под катом...