ВНИМАНИЕ: Но с использованием распространенных параметров он что-то выдает.
Понимаю, что ничего необычного в этом выводе нет, но всё же как-то бросается в глаза фраза "он что-то выдаёт". :) Звучит настораживающе.
Разные, на мой взгляд, интересные замечания, связанные с компьютерами в частности и техникой вообще.
[root@skynet ~]# cat /etc/acpi/events/auto_brightnessТеперь надо написать непосредственно скрипт, меняющий яркость взависимости от того, есть питание или нет. Здесь есть два пути - смотреть напрямую в /proc и парсить то, что там имеется или воспользоваться готовой функцией из acpi-support. Я выбрал второй вариант. Для тех, кому больше по душе первый, текущее положение адаптера отображается в /proc/acpi/ac_adapter/AC0/state
# /etc/acpi/events/auto_brightness
# Called when ac off and we need to switch brightness down or up when ac on.
#
event=ac_adapter.*
action=/etc/acpi/auto_brightness.sh
#!/bin/bashВсё. Рестартим acpid и радумаемся.
. /usr/share/acpi-support/power-funcs
getState
if [ "$STATE" = "AC" ]
then
echo 15 > /sys/class/backlight/eeepc/brightness
else
echo 1 > /sys/class/backlight/eeepc/brightness
fi
#!/bin/sh
#
# Auto wi-fi choise.
iface="$1"
ifconfig=$(which ifconfig)
iwlist=$(which iwlist)
which=""
# Проверка на случай, если wi-fi карта выключена.
if [ ! "$(grep $iface /proc/net/dev)" ]; then exit 1; fi
# Без этого не получится просканировать сеть.
$ifconfig $iface up
# Собственно выбор.
while read mac scheme; do
if [ "$which" ]; then continue; fi
if [ "$($iwlist $iface ap | grep $mac)" ]; then which="$scheme"; fi
done
# Передача выбора системным скриптам и выход.
if [ "$which" ]; then echo $which; exit 0; fi
exit 1
mapping ath0Я для примера показал две точки, но их на самом деле может быть сколько угодно. Главное соблюдать формат записи - map mac-адрес логическое_имя. Разумеется, параметры для каждой из точек могут совершенно любыми.
script /usr/local/sbin/awfc.sh
map 11:22:33:44:55:66 ath0-home
map AA:BB:CC:DD:EE:FF ath0-tmp
allow-hotplug ath0
# Домашняя сетка
iface ath0-home inet dhcp
wireless-essid HomeNet
wpa-ssid HomeNet
wpa-psk *********
# моё любимое кафе с wi-fi
iface ath0-tmp inet dhcp
wireless-essid TMPNet
#!/bin/bashДля определения списка стран, которые надо забанить используется файл, в котором просто перечисляются их коды:
#
TMPDIR=/tmp/geoiptban
IP_BBASE=$TMPDIR/bbase.csv
IP_EBASE=$TMPDIR/ebase.csv
DB_ZIP=$TMPDIR
PERL=/usr/bin/perl
FILE_BCOUNTRY=$1
COUNTRY_DB_URL=http://geolite.maxmind.com/download/geoip/database/GeoIPCountryCSV.zip
mkdir -p $TMPDIR
# Стягиваем и распаковываем базу айпишников.
wget -q -O $DB_ZIP $COUNTRY_DB_URL
unzip -p $DB_ZIP > $IP_BBASE
# Убираем лишние символы из базы, для простоты обработки.
if [ -e "$IP_BBASE" ]
then
cp $IP_BBASE $IP_EBASE
$PERL -pi -e 's/"//g' $IP_EBASE
else
echo "Source ip-base-file not found."
exit 0;
fi
# Обработка базы. Форматируем базу сперва в вид диапазонов ip-адресов, а потом в список подсетей.
# Получившиеся подсети скармливаем iptables'у.
if [ -e "$FILE_BCOUNTRY" ]
then
for country in $(cat ${FILE_BCOUNTRY})
do
grep $country $IP_EBASE | awk -F "," '{print $1," - ",$2}' > $TMPDIR/$country.il
for ((i=1;i<=$(wc -l ${TMPDIR}/${country}.il | awk '{print $1}');i++))
do
ipcalc $(head -n ${i} ${TMPDIR}/${country}.il | tail -n 1) | grep -v deaggregate >> $TMPDIR/$country.nl
done
done
for country_network_list in $(ls ${TMPDIR} | grep nl)
do
for ((i=1;i<=$(wc -l ${TMPDIR}/$country_network_list | awk '{print $1}');i++))
do
iptables -t filter -A INPUT -s $(head -n ${i} ${TMPDIR}/$country_network_list | tail -n 1) -j DROP
done
done
else
echo "List of blocked countries not found."
exit 0;
fi
rm -rf $TMPDIR
[root@gateway ~]# cat country_listЗапускается скрипт очень просто:
RU US GB
[root@gateway ~]# ./geoiptban.sh country_list