Били грозы как-то наши Ubiquiti (UBNT) антенны, которые потом приходилось ремонтировать, менять и естественно наново настраивать. Поэтому решил сделать автоматическое копирование конфигурации.
Читать далее «Резервное копирование конфигурации Ubiquiti (UBNT) устройств»Архивы меток:scripts
Выполнение SQL запроса из скрипта в Linux
Понадобилось недавно написать скрипт выполняющий sql запрос в базу MySQL.
Пример содержимого:
# Описание, тут я написал для других что скрипт добавлен в crontab, дабы его не переместили mysql -u ПОЛЬЗОВАТЕЛЬ -pПАРОЛЬ -h 127.0.0.1 -e "UPDATE nika_system.abon SET otkl=0 WHERE depozit > '10' AND (otkl='-1' OR otkl='-2');";
Чтобы скрипт выполнялся автоматически, откроем в любом текстовом редакторе файл crontab (в редакторе nano CTRL+X для выхода и y/n для сохранения или отмены изменений):
sudo nano /etc/crontab
Добавим в него следующую строку:
0 9 * * * root /home/nika/scripts/reset_credit_nika.sh > /dev/null 2>&1
Теперь ежедневно в 9 утра скрипт будет выполняться.
Приведу пример ежедневного автоматического вывода данных из sql таблицы в текстовый файл:
#!/bin/bash mysql -u ПОЛЬЗОВАТЕЛЬ -pПАРОЛЬ -h 192.168.1.1 -s -N -e "SELECT id FROM nika_system.abon WHERE tarif=109;";
В /etc/crontab добавим:
0 8 * * * root /scripts/freektb.sh > /srv/samba/dir/mirazh/$(date +%Y-%m-%d).txt
В целях безопасности лучше не указывать пароль в скриптах, смотрите мою статью — Подключение к MySQL из localhost без ввода пароля
Безопасная удаленная работа с MikroTik. Как не потерять связь с устройством
Включение Safe Mode (Безопасного режим) в оборудовании MikroTik позволяет, в случае потери связи с устройством, отменить последние сделанные изменения.
В консоли Safe Mode включается комбинацией клавиш CTRL+X, в интерфейсе Winbox вверху есть кнопка «Safe Mode». Если из-за неправильной настройки связь с устройством оборвется, то максимум через 9 минут изменения будут отменены.
Отменять неправильно выполненную конфигурацию можно также через скрипт.
Для начала сохраним текущую рабочую конфигурацию:
system backup save name=backup.cfg
Создадим скрипт:
/system script add name=имя_скрипта policy=\ ftp,reboot,read,write,policy,test,winbox,password,sniff,sensitive,api \ source="delay 900 \ /n system backup load name=backup.cfg"
После создания его необходимо запустить командой:
system script run имя_скрипта
и через 900 секунд (это 15 минут) он восстановит настройки из сохраненного ранее файла настроек. Если выполняя настройки связь с устройством не прервалась до истечения 15 минут, скрипт можно остановить командой:
system script job remove имя_скрипта
Вновь сохранить конфигурацию, запустить скрипт и продолжить настройку устройства.
Однако если перезагрузить устройство скрипт не будет выполнен.
На случай зависания также можно настроить Watchdog, который будет пинговать какой нибудь хост или сайт, и если с ним пропадет связь, то будет выполнена перезагрузка устройства. Однако неправильные введенные вами настройки из-за которых возможно пропала связь, останутся как были и устройство будет постоянно перезагружаться через указанное количество времени.
Приведу пример команды для его настройки:
system watchdog set no-ping-delay 20m automatic-supout yes watch-address=8.8.8.8
Bash скрипт перезагрузки оборудования через telnet
Заметил что некоторое дешевое управляемое оборудование, может через несколько дней или недель начать некорректно работать, поэтому возникла идея написать скрипт перезагрузки и добавить его в cron.
Содержимое скрипта:
#!/bin/bash ( sleep 5 echo "admin" sleep 5 echo "password" sleep 5 echo "reboot" sleep 5 echo "y" sleep 5 echo "quit" ) | telnet 192.168.1.10
sleep 5 означает паузу в 5 секунд после каждой команды, это значение оптимально для долго думающего оборудования. К примеру для клиентских коммутаторов D-Link DES-3200 паузу можно вовсе убрать или выставить 1.
Смотрите также:
Использование и настройка CRON
Рестартер TrinityCore под Linux
Приведу пример примитивного рестартера TrinityCore под Linux:
Читать далее «Рестартер TrinityCore под Linux»online.pl скрипт количества пользователей онлайн
Приведу пример скрипта выполняющего sql запрос в mysql базу с выводом результата. Можно прицепить его к графикам Zabbix, Cacti и т.д. чтобы мониторить например количество игроков онлайн на каком нибудь игровом сервере.
#!/usr/bin/perl use DBI; my $host = "localhost"; my $port = "3306"; my $user = "root"; my $pass = ""; my $db = "test"; $dbh = DBI->connect("DBI:mysql:$db:$host:$port",$user,$pass); $sth = $dbh->prepare("SELECT count(id) FROM `online`"); $sth->execute; while ($ref = $sth->fetchrow_arrayref) { print "$$ref[0]\n"; } $rc = $sth->finish; $rc = $dbh->disconnect;
Рестартер TrinityCore под Windows
Пример простого рестартера TrinityCore под Windows:
Читать далее «Рестартер TrinityCore под Windows»