Отключение функций печати SAMBA (SMB)

Когда вас раздражает запись в логе

Unable to connect to CUPS server localhost:631 – Connection refused

в конфиге /etc/samba/smb.conf нужно раскомментиравать опции и изменить к следующему виду:

load printers = no
printing = none
printcap name = /dev/null
disable spoolss = yes
show add printer wizard = no

Bacula удаление старых томов

В процессе многолетней эксплуатации Bacula у меня возникла ситуация когда мониторинг ругался что диск заполнен, а Bacula даже не собиралась удалять старые тома. Пришлось чистить ручками.

UPDATED: Автоматизация процесса.

Запускаем консоль

# bconsole

Переходим в режим SQL запросов к каталогу
Continue reading Bacula удаление старых томов

RouterBoard RB750 + OpenWRT

Для сборки Open-Wrt и прошивки в Mikrotik RouterBoard 750 потребуется:

  • Linux box;
  • прямой кабель ethernet (патчкорд).
Примечание: у меня Mikrotik отказывался загружаться через кросоверный (перекрещенный) кабель соединяющий его с интерфейсом компьютера Mikrotik< ->Компьютер.

Установить необходимые пакеты для сборки образа Open-WRT (список возможно не полный и вам потребуется что-то ещё)
Команда выполняется с привилегиями root

# yum install gcc gcc-c++ ncurses-devel zlib-devel flex git -y

Continue reading RouterBoard RB750 + OpenWRT

Простой скрипт автоматического рестарта http сервера

Если по непонятным причинам web сервер повисает, а времени на разбирательства нет, то неплохим вре́менным решением будет автоматический перезапуск web сервера. Такая ситуация сложилась с одним проектом у знакомого, администратор которого накануне уехал в отпуск. Вот скрипт который отлично справился с задачей.
Continue reading Простой скрипт автоматического рестарта http сервера

bash, парсинг имени файла и пути к нему

bash имеет встроенные функции манипуляции со строками. В частности функции удаления подстрок.

${string#substring} — удаляет кратчайшее вхождение подстроки $substring от начала строки $string.

${string##substring} — удаляет длиннейшее вхождение подстроки $substring от начала строки $string.

Аналогичным образом действует оператор % но действует от конца строки.

${string%substring} — удаляет кратчайшее вхождение подстроки $substring в конце строки $string.

${string%%substring} — удаляет длиннейшее вхождение подстроки $substring в конце строки $string.

При помощи этих функций можно получить имя файла, путь к файлу и его расширение:

# переменная для работы содержащая полное имя и путь к файлу
fullpathname="/root/temp/file.tar.gz"

# Получить путь (часть от начала строки до последнего слева слеша)
$ fullpathname="/root/temp/file.tar.gz"; echo "${fullpathname%/*}"
/root/temp

# Получить имя файла (часть от самого правого слеша до конца строки)
$ fullpathname="/root/temp/file.tar.gz"; echo "${fullpathname##*/}"
file.tar.gz

# Получить строку левее самой левой точки
# !!! Если точка будет находиться в пути, то отрежет по ней
$ fullpathname="/root/temp/file.tar.gz"; echo "${fullpathname%%.*}"
/root/temp/file

# Получить путь и имя файла без расширения (удаляет все правее самой правой точки)
$ fullpathname="/root/temp/file.tar.gz"; echo "${fullpathname%.*}"
/root/temp/file.tar

# Получить расширение (правая часть от последней слева точки в имени файла)
$ fullpathname="/root/temp/file.tar.gz"; echo "${fullpathname##*.}"
gz

# Все расширения (правая часть от первой слева точки в имени файла)
$ fullpathname="/root/temp/file.tar.gz"; echo "${fullpathname#*.}"
tar.gz

# Удаление любого расширения
$ fullpathname="/root/temp/file.tar.gz"; echo "${fullpathname%.*}"
/root/temp/file.tar

# Удаление расширения .gz
$ fullpathname="/root/temp/file.tar.gz"; echo "${fullpathname%.gz}"
/root/temp/file.tar

# Замена расширения .gz на .doc
$ fullpathname="/root/temp/file.tar.gz"; echo "${fullpathname%.gz}.doc"
/root/temp/file.tar.doc

Ниже для наглядности небольшой рисунок, который, возможно, поможет лучше запомнить работу этих операторов.

fullpathname="/root/temp/file.tar.gz"
              |--------------------|   - fullname
              ^--------^               - path
                         ^---------^   - name
                                  ^^   - extension
             #>>                       - от начала короткое удаление
            ##>>>>                     - от начала длинное удаление
                                  <<%  - от конца короткое удаление
                                <<<<%% - от конца длинное удаление

По материалам Advanced Bash-Scripting Guide

apache не выполняет php скрипт, а отображает его содержимое.

<?php
phpinfo();
?>

Современные версии php по умолчанию не обрабатывают короткий тэг. То есть, надо писать не

<?
phpinfo();
?>

но

<?php
phpinfo();
?>

Настройка находится здесь:
/etc/php.ini

short_open_tag = Off

Нужно включить On посде этого будет обрабатываться короткий открывающий тэг.

pure-ftpd не создаёт домашний каталог виртуального пользователя

pure-ftpd
Как описано в документации опция CreateHomeDir разрешает автоматически при первом входе на ftp создавать домашние каталоги для виртуальных пользователей pure-ftp при каждом входе (если каталог не существует).

После установки в конфиге /etc/pure-ftpd/pure-ftpd.conf опций

VerboseLog yes
CreateHomeDir yes

я ожидал что домашние каталоги пользователей будут создаваться. Однако они не создавались ни при добавлении виртуального пользователя ни при логине пользователя. А в логе /var/log/messages появляются такие вот скупые записи:

May 28 18:12:09 b01 pure-ftpd: (?@127.0.0.1) [INFO] New connection from 127.0.0.1
May 28 18:12:09 b01 pure-ftpd: (?@127.0.0.1) [ERROR] Home directory not available - aborting

Continue reading pure-ftpd не создаёт домашний каталог виртуального пользователя

zabbix_get — не выдаёт данных

Бывает вот так:

[root@v03-a ~]# zabbix_get -s 127.0.0.1 -p 10050 -k "system.cpu.load[all,avg1]"


[root@v03-a ~]#

Попробуйте воспользоваться telnet – получите больше информации.

[root@v03-a ~]# telnet localhost 10050
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Connection closed by foreign host.

Оказывается что zabbix_get выводит пустую строку если zabbix-agent на целевом хосте не принимает соединение.
Проверяйте доступность портов в iptables
а также строку настройки в /etc/zabbix/zabbix_agentd.conf

Server=192.54.18.210,192.54.18.211,192.54.18.213