Тег-архив » Linux «

Shell Скрипты: Делаем дамп системы

Всё просто, данный скрипт делает дамп системы ;)
Полезно :)

#!/bin/sh
# Enter info:
e_mail="onyx@xxx.xxx.ua"
backup_date="`date +%d-%m-%Y`"

# Path to command
mount="/sbin/mount"
umount="/sbin/umount"
dump="/sbin/dump"
# Path to programm
massive="/mnt/usb_mass"

# Mount usb massive
${mount} /dev/da0s1 ${massive}

# Create dump slice
${dump} -0ua -L -f ${massive}/dump_root.img /dev/ad0s1a
${dump} -0ua -L -f ${massive}/dump_usr.img /dev/ad0s1d
${dump} -0ua -L -f ${massive}/dump_var.img /dev/ad0s1e

# If file exists
if [ -f $massive/dump_root.img ]
then dump1="Image dump_root.img was created";
else echo "Image dump_root.img was not created, please see this dump!" | mail -s "!!ERROR Dump!!" ${e_mail}
exit 2;
fi

if [ -f $massive/dump_usr.img ]
then dump2="Image dump_usr.img was created";
else echo "Image dump_usr.img was not created, please see this dump!" | mail -s "!!ERROR Dump!!" ${e_mail}
exit 2;
fi

if [ -f $massive/dump_var.img ]
then dump3="Image dump_var.img was created";
else echo "Image dump_var.img was not created, please see this dump!" | mail -s "!!ERROR Dump!!" ${e_mail}
exit 2;
fi

# Umount usb massive
${umount} ${massive}

# Mail to me
echo "
${dump1}
${dump2}
${dump3}
" | mail -s dump_${backup_date} ${e_mail}
Twitter Google Bookmarks Закладки Yandex БобрДобр.ru Memori.ru МоёМесто.ru

Shell скрипт: отображение подключенных пользователей по VPN

Данный скрипт отображает общее кол-во пользователей подключенных по VPN с условием, что сервер pptp + ко всему уведомляет администратора сервера о том, что пользователь не со своей машины подключился к VPN серверу (администратор получает емаил) .. работает с Базой Данных MySQL.

#!/bin/sh
date=`date "+ %Y-%m-%d %H:%M:%S"`
#echo date=$date
run=`ls /var/run/ | grep tun | wc -l`
#echo "Total connections: "$run
sock=`sockstat | grep 100:1723 | awk '{print $3}' | sort`  ##socstat'om delaem viborku PID
tunx=`netstat -r -f inet | grep tun | awk '{print $6}'` ## netstat'om delaem viborku vseh tunX na tekuschiy moment
path=/usr/local/bin
## ifconfig'om delaem viborky po tunX i zapisivaem v file=ifcfg v odnu stroky
for j in $tunx
do
ifconfig $j | awk 'BEGIN { ORS = " "} {print}' >> /tmp/ifcfg
echo >> /tmp/ifcfg
done

#clear database
echo "use vpn; delete from conn; delete from info;" > /tmp/vpn_del.sql
$path/mysql < /tmp/vpn_del.sql
rm /tmp/vpn_del.sql

echo "use vpn; insert into info values ('$run','$date');" >> /tmp/info.sql
$path/mysql < /tmp/info.sql

echo "use vpn;" > /tmp/vpn.sql
if [ $run -eq 0 ]
 then echo $date --> NO CONNECTION
  else
   for i in $sock
    do
        k=`expr $i + 1`
   #echo ---------------------------
   if=`cat /tmp/ifcfg | grep $k | awk '{print $1}'` ; # echo if=${if%:};
        vip=`cat /tmp/ifcfg | grep $k | awk '{print $8}'`; # echo "virtual IP = $vip"
        rip=`sockstat | grep 100:1723 | grep $i | awk '{print $7}'| awk -F : '{print $1}'` ; # echo "rial IP = $rip"
   host=`host $rip | awk '{print $5}' | awk -F . '{print $1}'` ; # echo host=$host
   rip_=`cat /etc/ppp/ppp.secret |grep -w $vip |awk '{print $4}'`; # echo $rip_
   if [ $rip = $rip_ ]
    then i=1;
     else i=0 && echo "${if%:} ~ $vip ~ $rip ~ $host ~ $date" | mail -s "Bad connections!!!" admin@domen.ua
   fi
   echo "insert into conn values ('${if%:}','$vip','$rip','$host','$date','$i');" >> /tmp/vpn.sql

    done
   $path/mysql < /tmp/vpn.sql
fi
rm /tmp/ifcfg 2>/dev/null
rm /tmp/vpn.sql 2>/dev/null
rm /tmp/info.sql 2>/dev/null
Twitter Google Bookmarks Закладки Yandex БобрДобр.ru Memori.ru МоёМесто.ru

Shell скрипт: блокирование системных пользователей

Повторюсь на всякий случай, чтобы мало ли…
Скрипты не написаны мною, а собираются из различных форумов, заброшенных сайтов и т.д. т.п. для систематизации :)
аФФтарам скриптов рЭспЭкт :)

Этот скрипт выбирает всех пользователей системных и блокирует их, но только тех, у кого нет alias’a =)

#!/bin/sh

# variables
cat="/bin/cat"
awk="/usr/bin/awk"
grep="/usr/bin/grep"
echo="/bin/echo"
pw="/usr/sbin/pw"

# Выгребаем аккаунты пользователей, по идентификаторам:
${grep} -v "^#" /etc/passwd | {
while read user_string
do
user_name="`${echo} ${user_string} | awk -F ':' '{print $1}'`"
# смотрим идентификатор пользователя. Если больше 1000 то что-то делаем
if [ `${echo} ${user_string} | awk -F ':' '{print $3}'` -ge 1000 ]
then
        #echo "Больше = `${echo} ${user_string} | awk -F ':' '{print $3}'`"
        # Проверяем наличие альяса
        user_name2="`${grep} \"^${user_name}:\" \
                        /etc/aliases | awk -F ':' '{print $1}'`"
        if [ "${user_name}x" = "${user_name2}x" ]
        then
                # Альяс есть.
        else
                # Альяса нет. Лочим юзера.
                #echo $user_name
                ${pw} lock ${user_name}
        fi
else
        # системный юзер...
fi

done
}
Twitter Google Bookmarks Закладки Yandex БобрДобр.ru Memori.ru МоёМесто.ru

Shell скрипт подсчет трафика

Итак, первый скрипт для шелла ;) для подсчета трафика :) данный скрипт нужно поставить в крон и будет всё ок :)

#!/bin/sh

# Временный файл
tmp_file="/tmp/trafd.traffic.$$.tmp"

# внешний ip машины
external_IP="`/sbin/ifconfig ed0 | grep inet | awk '{print $2}'`"

# Сегодяшний день
day="`date +%Y-%m-%d`"
# Текущий год
year="`date +%Y`"
# Текущий месяц
month="`date +%m`"
# Текущее время (секунды специально сделаны 00 - иногда cron запускает скрипт не
# в 00 секунд а позже (максимум что я видел - в 13), если машина очень загружена -
# как итог в логах начинает фигурировать разное число секунд.
# Мне это непонравилось :)
curr_time="`date +%H:%M:00`"
# Директория в которой будут храниться текстовые файлы с логами trafd
NewDir="/var/traffic/${year}/${month}"
# Пытаемся создать эту самую директорию на случай если это первый запуск
# или произошла смена месяца (года)
mkdir -p ${NewDir}
# Ну и топаем туда
cd ${NewDir}

# Считываем все переменные из файла /etc/rc.conf с целью извлечь оттуда
# строчку с названиями интерфейсов по которым работает trafd
# (У меня три сетевых платы и lo0 - просто интереса ради)
. /etc/rc.conf

# Для всех интерфейсов выковырнутых из rc.conf (висят в ${trafd_ifaces})
# выполняем один и тот же набор действий по разбору логов и запихиванию
# их в базу данных
for iface in ${trafd_ifaces}
do
# Сохраняем статистику по текущему интерфейсу
/usr/local/bin/trafsave ${iface}
# Преобразуем логи из двоичного в текстовый формат. Сохраняются они в
# папке /tmp в виде файлов summary.* c расширением по имени интерфейса
/usr/local/bin/traflog -i ${iface} -a -n -s > /tmp/summary.${iface} 2>/dev/null
# Очищаем файл с логами в двоичном формате
cat /dev/null > /usr/local/var/trafd/trafd.${iface}
# Дозаписываем логи в текстовый файл (пусть лежат на всякий случай...)
cat /tmp/summary.${iface} >> ${NewDir}/summary.${iface}

# проверяем интерфейс. Нам интересен лишь ed0
if [ ${iface} = 'ed0' ]
then
# Считаем траффик от нас. Считаем за весь месяц, кладём во временный
# файл - из него будет выводиться при логине - когда su делаешь
cat ${NewDir}/summary.${iface} | grep "^[0-9]" | grep "^${external_IP}"| awk '
        BEGIN { d=0 }
                {
                        # Суммируем 6-й столбец на вводе - траффик
                        d=$6+d
                }
        END {
                printf " %s \n",d
        } ' > ${tmp_file}
read bytes_out < ${tmp_file}

# Считаем траффик от нас. Считаем за весь месяц, кладём во временный
# файл - из него будет выводиться при логине - когда su делаешь
cat ${NewDir}/summary.${iface} | grep "^[0-9]" | grep -v "^${external_IP}"| awk '
        BEGIN { d=0 }
                {
                        # Суммируем 6-й столбец на вводе - траффик
                        d=$6+d
                }
        END     {
                        printf " %s \n",d
                } ' > ${tmp_file}
read bytes_in < ${tmp_file}

# заносим траффик во временный файл - будет выводиться на экран при логоне
# но вначале пересчитываем из байт в мегабаты.

echo " Траффик за этот месяц (пересчитывается каждые 10 минут):
 Входящий:      `expr ${bytes_in} / 1048576` Mb
 Исходящий:     `expr ${bytes_out} / 1048576` Mb" > /usr/local/var/trafd/tmp_data.txt

#echo ${bytes_in} ${bytes_out}
fi

done

# удаляем временный файл
rm ${tmp_file}
Twitter Google Bookmarks Закладки Yandex БобрДобр.ru Memori.ru МоёМесто.ru

Linux: Ubuntu 9.10

Ubuntu – основан на дистрибутиве Debian GNU/Linux .
Не скажу, что я данный дистрибутив обожаю, но всё-таки решил попробовать его поставить, посмотреть, что нового есть в новой версии…
Ведь сообщество Ubuntu довольно большое, даже взять русскоязычное, оно тоже не маленькое.
Вот-с на выходных, поставил. Принцип установки и шаги данного дистрибутива ничем не изменились.
После установки системы начал играться с Программным Обеспечением, которые поставилось и которое надо поставить. Модернизировали они меню «Установки и удаления программ», в какой-то степени интересней стало, но не сказать что на 100% удобнее, но как говориться на вкус и цвет товарищей нет ;)
Понравилось то, что внедрили нормальную поддержку Флэша, потому как заходя на некоторые сайты, которые обильно засеяны флэш баннерами, ощущаешь тормоза, не смотря на то, что железо то не слабенькое ;)
А так, вроде бы производительность на том же железе увеличилась, это радует ;)
В принципе, довольно хороший дистрибутив для работы из коробки для простого пользователя ;)
Так что рекомендую!
Если будут вопросы обращайтесь ;)

P.S. это чисто сугубо своё выразил мнение, пост не тянет на обзор ;)

Twitter Google Bookmarks Закладки Yandex БобрДобр.ru Memori.ru МоёМесто.ru

Тихо, пока никто не видит…

Прэвэд всем ;)

Пока Масяня гуляет по магазинам у меня две задачи:

1. Уборка в доме

2. Установка Линукса на стационарном компе:)  ну-с не просто надо установить, но и всё настроить ;) чтобы было без сучка и задоринки ;)

Ну что с богом!!!

Twitter Google Bookmarks Закладки Yandex БобрДобр.ru Memori.ru МоёМесто.ru

А нужно ли нам переходить на Unix/Linux ОС?

Я немного сглупил, что сначала не написал этот пост, перед тем как писать про выбор дистрибутива Unix/Linux. Но что же, никогда не поздно, что-либо сделать ;-)

И так… Поехали!

Мы дома, в основном используем стационарный компьютер для просмотра фильмов, слушаем музыку локально расположенную или он-лайн радио, а также для гуляния по сети Интернет ;) Ну, если я за ним, то еще работаю, но работа моя в основном состоит из того, что я захожу на удаленный комьютер, который стоит в офисе компании, где я работаю и там уже имею доступ ко всему оборудованию, а если рассматривать дополнительный заработок, то для этого мне в основном нужна простая косоль для доступа по ssh к серверам ;) Иногда с Масяней играемся, но Читать полностью…

Twitter Google Bookmarks Закладки Yandex БобрДобр.ru Memori.ru МоёМесто.ru

Выбираем дистрибутив Linux/Unix для десктопа

Сегодня уже писал о том, что хочу всё-таки добить идею с полноценным переходом на бесплатное ПО ;)

Принципе , на домашний компьютер можно поставить любую ОС и прикрутить к ней Графическую оболочку, но можно просто всё поставить из коробки. Это, как говориться, дело вкуса ;)

Из всех дистрибутивов Unix/Linux , я многие попробовал из Читать полностью…

Twitter Google Bookmarks Закладки Yandex БобрДобр.ru Memori.ru МоёМесто.ru

Open source soft или бесплатно распространяемые программы

В наше время в основном все программное обеспечение делиться на платное или бесплатное, я не беру в счет “условно бесплатное”. Все, кто работает за компьютером сталкивается и с теми, и с другими.

В мире, сейчас идет война с “пиратством”, то есть с теми, кто использует нелегально платное программное обеспечение. И перед всеми пользователями встает задача, какое же программное обеспечение использовать: покупать платное или искать аналоги бесплатного программного обеспечения?

Думаю, что не все еще над таким вопросом задумываются, Читать полностью…

Twitter Google Bookmarks Закладки Yandex БобрДобр.ru Memori.ru МоёМесто.ru

Общие сведения об операционной системе

Операционная система — это программа, которая управляет аппаратными и программными средствами компьютера, предназначенными для выполнения задач пользователя.

Операционная система - это комплекс взаимосвязанных системных программ, назначение которого – организовать взаимодействие пользователя с компьютером и выполнение всех других программ.

Операционная система выполняет роль связующего звена между аппаратурой компьютера, с одной стороны, и выполняемыми программами, а также пользователем, с другой стороны.
Операционная система обычно хранится во внешней памяти компьютера – на диске . При включении компьютера она считывается с дисковой памяти и размещается в ОЗУ. Этот процесс называется загрузкой операционной системы .

В функции операционной системы входит:
• осуществление диалога с пользователем;
• ввод-вывод и управление данными; Читать полностью…

Twitter Google Bookmarks Закладки Yandex БобрДобр.ru Memori.ru МоёМесто.ru