Почта для админа. You have new mail in /var/mail/root

В файле /var/mail/root появляются письма от системы «You have new mail in /var/mail/root» — сообщения о действиях системы и ошибках, неудачных попытках логина, советы — что надо сделать системному администратору. Этот файл можно прочитать обычным текстовым редактором.

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

Запуск программы. При запуске выводится список сообщений.
# mail

Вывести подсказку по командам.  Амперсанд & — это просто приглашение для ввода команды в программе mail:
& help

Вывести на экран (print) текущее сообщение. После старта программы текущее сообщение будет сообщение с номером 1. Текст сообщения можно листать, пока не будет достигнут конец сообщения.
& p

Вывести на экран сообщение номер N.
& p N

Вывести на экран друг за другом сообщения с номерами от X до Y включительно:
& p X — Y

Вывести друг за другом все сообщения:
& p *

Аналогично работает команда d (delete), удаляющая сообщения:
& d
d N
d X — Y
d *

Выход из программы с сохранением изменений (quit) — то, что вы удалили некоторые сообщения, запомнится в базе, и при следующем вызове mail эти сообщения показываться не будут:
& q

Выход (exit) без учета изменений (все удалённые Вами сообщения сохранятся при следующем входе в программу mail).
& x
& exit

Сохранение текущих настроек iptables в Debian

Последнее время все чаще и чаще сталкиваюсь с мнением что в Debian нет никаких четких правил относительно iptables. Дескать пользователь сам должен решать где хранить правила, и как их запускать. Более того для корректной работы дескать нужно самостоятельно писать init-script.

Дорогие мои, да неужели вы серьезно считаете что такой взрослый дистрибутив как Debian за столько лет ни разу не напрягся и не сделал ничего для нормальной работы iptables — по сути одного из важнейших сервисов Linux? Я вас умоляю! Все проще пареной репы!

Дело в том, что iptables в Debian ставится по умолчанию. То есть даже в минимальной системе он уже присутствует и как результат присутствуют утилиты для его конфигурирования. Тем не менее, для того что бы Debian работал с iptables по взрослому, как с сервисом, требуется поставить всего один пакет

# aptitude install iptables-persistent

Во время установки система вежливо поинтересуется не хотите ли вы сохранить текущие настройки вашей огонь-стены для ipv4 и ipv6. Как несложно догадаться пути можно подсмотреть так

# grep "iptables-save" /etc/init.d/iptables-persistent

И теперь вы знаете что по стандарту debian хранит настройки iptables в файлах

/etc/iptables/rules.v4 — для IPv4 и

/etc/iptables/rules.v6 — для IPv6

Более того теперь у вас есть сервис iptables-persistent который загружает настройки при запуске и сохраняет при останове системы, а так же может перезапустить настройку iptables.

Так что теперь готовьте iptables правильно. И что бы я больше никогда не видел самопальных init-скриптов про iptables и файлов конфигурации iptables с произвольными именами в по произвольному пути. Используйте стандарт и админы пришедшие вам на смену скажут вам спасибо.

Установка Webmin на Ubuntu Server 14.04

Webmin — известный веб-интерфейс для системного администрирования Unix систем. Т.е. используя любой браузер, можно получить быстрый доступ к функциям вашего сервера (включая удобную правку конфигурационных файлов). Сам пакет представляет собой простой веб-сервер и кучу скриптов. Вот один из наиболее удобных способов его установки:

1. Редактируем файл /etc/apt/sources.list:

nano /etc/apt/sources.list

И добавляем в него:

deb http://download.webmin.com/download/repository sarge contrib
deb http://webmin.mirror.somersettechsolutions.co.uk/repository sarge contrib

Сохраняем и выходим.

2. Импортируем GPG ключ:

wget http://www.webmin.com/jcameron-key.asc
apt-key add jcameron-key.asc

3. Обновляем список источников:

apt-get update

4. Устанавливаем Webmin:

apt-get install webmin

Готово! Все необходимые для его работы пакеты, будут установлены автоматически.

5. Теперь заходим в Webmin: https://ваш-сервер:10000/

Настройка сетевых адаптеров CentOS

Настройка сетевых адаптеров CentOS.

У нас сервер играет роль шлюза в Интернет, поэтому он должен иметь два сетевых адаптера.

Операционная система CentOS по умолчанию, дает установленным сетевым картам имена «ifcfg-eth0» и «ifcfg-eth1». В итоге у вас будет два файла:

/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth1

Система Windows адаптеры например обзывает как «Сетевое Подключение по Локальной сети 1» и «Сетевое подключение по Локальной сети 2»

Настройка сетевых адаптеров производится путем редактирования файлов /etc/sysconfig/network-scripts/ifcfg-ethX

В нашем случае этих файлов два, так как сервер имеет всего два сетевых установленных интерфейса.

Откроем первый файл, который отвечает за первый адаптер. Подключим этот интерфейс к Интернету.

# vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE="eth0"
HWADDR="08:00:27:79:17:85"
NM_CONTROLLED="no"
ONBOOT="yes"
GATEWAY=10.168.50.1
IPADDR=10.168.50.2
PREFIX=24
BROADCAST=10.168.50.255
DNS1=217.15.11.11

Жирным шрифтом, я пометил свои изменения, которые произвел в этом файле.

Теперь пришла очередь второго файла, отвечающего за сетевую карту подключенную в локальную сеть.

# vi /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE="eth1"
HWADDR="08:00:27:1D:7B:43"
NM_CONTROLLED="no"
ONBOOT="yes"
IPADDR=192.168.50.2
PREFIX=24

Перезапустим сетевую службу, чтобы наши изминения вступили в силу:

# service network restart

Bash скрипт оповещения на мыло при наличии свободного места менее 10%

Скрипт простой до боли в печени, при достижении отметки менее 10% свободного места мылит на мыло

#!/bin/bash
used=`df -h | grep sda1 | awk {'print $5'}`
used=${used/\%/}
if [ $used -gt 90 ];
then
echo "Attention! Available space less than 10%. Used space = $used"% | mail -s "DISK ALERT" user@host.com
fi

далее

chmod +x имя_скрипта

не забываем установить почтовый агент mailx

yum install mailx

Кидаем в крон:

Каждый пользователь системы имееет свой собственный файл, в котором прописаны все задания от данного пользователя (/var/spool/cron/). Просмотреть задания, которые уже добавлены в Ваш cron файл (в cron файл Вашего пользователя) можно через команду:

crontab -l

От имени пользователя выполняем команду crontab -e
В конце файла дописываем задание. Пример запроса каждую минуту страницы сайта:

* * * * * curl http://ya.ru

1. Минуты (0 – 59)
2. Часы (0 – 23)
3. День месяца (0 – 31)
4. Месяц (1 -12)
5. День недели (0 – 6, 0 – воскресенье)
6. Команда

В Debian, задания сохраняются в /var/spool/cron/crontabs/
В CentOS, задания сохраняются в /var/spool/cron/

Дабы cron не «мучил» нас уведомлениями на e-mail, добавляем > /dev/null 2>&1. Теперь, задание выглядит так:

* * * * * curl http://ya.ru > /dev/null 2>&1

И перечитываем конфигурацию: killall -HUP cron
Или перезапустим службу: service crond restart

З.Ы. Это грубо говоря игрушечный вариант, т.к. лучше все-таки использовать системы мониторинга.