Резервное копирование конфигурации TP-Link коммутаторов

Набросал скрипт для резервного копирования конфигурации TP-Link коммутаторов.
Скрипт выполняется на Linux где запущен TFTP сервер, он подключается по telnet к коммутатору и специальной командой конфигурация отправляется на указанный TFTP, по закрытию telnet соединения, файл перемещается в нужную директорию, а также последняя команда удаляет файлы которым больше 30 дней, так как больше их хранить мне не нужно.
Также можно ежемесячно делать например копию всех файлов в облако.
Как видно, перед вводом пароля в скрипте ставить паузу нельзя.

#!/bin/bash
{
echo "ПАРОЛЬ";
echo "enable";
echo "ПАРОЛЬ";
echo "copy startup-config tftp ip-address 192.168.0.5 filename tplink";
sleep 2;
echo "exit";
sleep 1;
echo "exit";
} | telnet 192.168.0.110

mv /srv/tftp/tplink.cfg /backups/devices/tplink/`date +%Y-%m-%d`_tplink.cfg
find /backups/devices/tplink/ -type f -mtime +30 -exec rm {} \;

Резервное копирование конфигурации коммутаторов и прочего сетевого оборудования

Сегодня придумал скрипт резервного копирования конфигурации коммутаторов через telnet.
Идея возникла когда понадобилось делать резервные копии конфигурации главной станции GPON.

Содержимое моего скрипта:

#!/bin/bash
# For GPON MA56XX

(
sleep 5
echo "root"
sleep 5
echo "password"
sleep 5
echo "enable"
sleep 2
echo "backup configuration tftp 192.168.1.1 gpon.cfg"
sleep 2
echo "y"
sleep 10
echo "quit"
sleep 2
echo "y"
) | telnet 192.168.1.2
mv /srv/tftp/gpon.cfg /home/backups/now/switches/gpon/`date +%Y-%m-%d`_gpon.cfg

Содержимое поместим в файл к примеру backup_cfg.sh, сделаем файл исполняемым и добавим в /etc/crontab строку для авто выполнения скрипта например каждый день в 5 утра:

0 5 * * * root /home/backups/scripts/backup_cfg.sh > /dev/null 2>&1

Как запустить tftp сервер смотрите в моих статьях: Установка и настройка TFTP сервера в Ubuntu или Запуск TFTP сервера на Windows.
Смотрите также: Использование и настройка CRON

Telnet команды для видеорегистраторов Dahua

Для подключения к видеорегистраторам Dahua через telnet в Windows можно воспользоваться например программой PuTTY.
Стандартный логин — root, пароль — vizxv. Они отличаются от тех что настраиваются в web-интерфейсе, многие о них даже не знают и поэтому видеорегистратор уязвим, так как к нему можно подключится. У IP-камер Dahua по сути та же операционная система, по этому к ним тоже можно подключится.
Telnet работает через tcp на 23 порту.

Опишу некоторые команды при подключении через telnet:
reboot (перезагрузка видеорегистратора)
ls -l (просмотр файловой системы)
ls -l /папка (просмотр содержимого конкретной директории)
vi /папка/файл.txt (пример открытия файла в текстовом редакторе vim, смотрите также Использование текстового редактора vim)
mount (просмотр смонтированных разделов)
mount -o rw /mnt/папка (монтирование раздела с правом на чтение и запись)
mount -o ro /mnt/папка (монтирование раздела с правом только на чтение)
/unmount /mnt/папка (пример отсоединения раздела)
cd /папка (переход в указанную директорию)
cd .. (возвращение на директорию выше)

Смотрите также:
Установка и использование john в Linux

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

Telnet команды Master(3210) 52M HomePNA

За пример взят Master(3210) 12~44(47MHz) 52M, (Hardware: D003, Bootcode: 4.6, Firmware: 4.74, Driver: 2.8.6RC14-0).
Стандартный IP: 192.168.1.1, логин и пароль admin/admin.
Приведу список доступных telnet команд с возможными параметрами:

autocfg [-t <on/off>] [-s <server>] [-p <path>]     - setup auto config via tftp
autoupg [-p <enable/disable>] [-v <enable/disable>]     - setup auto upgrade of ep (-p - hpna driver, -v - voip driver)
default     - reset system settings to factory default
dhcpsnoop [-m <0/1/2>]  - config dhcp option 82 and dhcp snooping (0: disable, 1: enable dhcp option 82, 2: enable dhcp option 82 and IP source guard)
diag <-t/-r> -m <mac>        - diagnose tx/rx snr between master and ep (-t - snr from master to ep, -r - snr from ep to master)
dir         - display flash(rom) file info
dns [-s <pri/sec> <ip>]        - setup DNS servers
exit/quit   - exit shell
ep [-c <hostcnt(0~12)>] [-n <note(note len <= 16)>] -m <mac>         - config ep host count and note
ephpnareboot - reboot ep hpna
epreg -m <mac>      - register/new an ep profile
eprestore  -m <mac>  - restore/reconfig ep settings
epstat -m <mac> [-r] [-d]     - display ep ethernet rx/tx statistics (-d - display ep statistics in decimal format. (default is hexadecimal format), -r - reset ep statistic counters)
epswc -m <mac> [-t] [-u] [-r] [-d] [-p <lan1/lan2/hpna> [-l <up/down>] [-s <auto/10h/10f/100h/100f>] [-f <on/off>]]      - config ep port ([-s] option is ignored for [-p hpna]-m - ep's mac address (xx-xx-xx-xx-xx-xx), -r - reset ep switch. [ignore other options], -d - reset ep switch/eeprom to default. [ignore other options], -t - display ep switch setting, -u - display ep switch status, -p <lan1/lan2/hpna> - port, -l <up/down> - set link up/down, -f <on/off> - enable/disable flow control, -s <auto/10h/10f/100h/100f> - set ethernet speed and duplex mode.)
epswigmp -m <mac> [-c <on/off>]   - config ep igmp ((no argument) - display settings)
epswmacfilter -m <epmac> [-c <on/off> -s <set(0~5)> [-a <hostmac>]] - config ep host mac filter
epswqosq -m <mac> [-t <strict/wfq/mix>] [-p <0/1>, 0:802.1p(default), 1:IP TOS/TC or DSCP]   - config ep qos q
epswqosrate -m <mac> [-p <lan1/lan2/hpna> [-d <up/down>] [-c <on/off>] [-r <N(1~1563, rate=N*64kbps)>]] - config ep port tx/rx rate control
epswqostc -m <mac> [-s <set(0~2)> [-p <port(0~65535)> -q <queue(0~3)>]]   - config ep qos traffic classification
epswtagvlan -m <mac> [-c <on/off>] [-p <lan1/lan2/hpna/voip> [-r <priority(0~7)>] [-v <vid(1~4094)>] [-i <all/tag>] [-o <untag/tag/bypass>]] - config ep tag vlan
filter [-b <block/allow>] [-r <disable/enable/client/server>] [-s <set(0~15)> [-c <act/deact>] [-a <ip> -m <mask>] [-t <allow/deny>] [-w <allow/deny>] [-n <allow/deny>] [-p <allow/deny>]]     - config access control filters ((no argument) - display settings, -b <block/allow> - block/allow microsoft network discovery, -r <disable/enable/client/server> - disable/enable/enable client side/enable server side arp inspection while dhcp snooping., -s <set(0~15)> - rule set, -c <act/deact> - active or deactive the set, -a <ip> - ip address, -m <mask> - subnet mask, -t <allow/deny> - allow/deny telnet access, -w <allow/deny> - allow/deny http access, -n <allow/deny> - allow/deny snmp access, -p <allow/deny> - allow/deny ping reply)
findep [-m <host mac>] [-e <ep mac>] [-c]     - find ep or host
chaninf -m <mac> [-a <u/d/a>] [-d <mac>] [-u <mac>] [-s]     - get channel info (-m <mac> - mac address of master, -a <u/d/a> - print data of all upstream/downstream/both receivers. [default: -a <a>] This option can't coexist with [-d] or [-u] option, -d <mac> - print rx data of mac (downstream), -u <mac> - print rx data of mac (upstream), -s - slience. (don't print to screen), -h - help)
help        - list all available commands
hpnareboot  - reboot master hpna (not include system) (-d - disable hpna flash. [default: enable])
ipconfig [-d] [-a <ip> -m <mask> -g <gw>]   - config ip settings (-d - by dhcp, can't coexist with [-a]/[-m]/[-g] options)
logserver [-s <set(0~4)> [-c <act/deact>] [-m <tcp/udp>] [-p <port number(1..65535)>] [-a <server> -v <severity>]]   - setup syslog servers ((no argument) - display settings, -s <set(0~4)> - rule set, -c <act/deact> - active or deactive the set, -m <tcp/udp> - syslog over tcp/udp, -p <port number> - tcp/udp port number(1..65535), -a <server> - syslog server ip address or domain name. (len <= 8410), -v <severity> - severity (emergency/alert/critical/error/warning/notice/info/debug))
master [-m <on/off>] [-k <key(0~0xffff)>] [-n <note(note len <= 32)>]     - config master hpna settings ((no argument) - display settings, -m <on/off> - enable/disable privacy mode, -k <key(0 ~ 0xffff)> - set the privacy key, -n <note(note len <= 32)> - master note)
passwd [name] -o <oldpasswd> -n <newpasswd>      - change management user's password
ping [-n <count>] [-w <timeout>] [-l <send buffer size(max=1472)>] address        - ping function
reboot [-f] [-n]     - reboot system (include master hpna) (-f - force reboot, -n - don't reboot hpna)
rmep -m <mac>       - remove an offline ep profile
service [-s <telnet/http> [-c <on/off>] [-p <port(1~65535)>] [-t <idle timeout(0~32767 sec)>]]    - telnet/http service control
showep [-f] [-n <note>] [-m <mac(xx-xx-xx-xx-xx-xx)>]     - display ep info
showlog     - display logs
showmaster  - display master info
snmp [-c <act/deact>] [-p <port(1..65535)>] [-n <name(max strlen 16)>] [-t <contact(max strlen 16)>] [-l <location(max strlen 16)>] [-r <rcomm(max strlen 16)>] [-w <wcomm(max strlen 16)>]       - config snmp
snmptrapserver [-s <set(0~4)> [-c <act/deact>] [-p <port(1..65535)>] [-a <server>] [-m <community(max strlen 16)>]] - config snmp trap servers
snr -e <mac> [-n <samples(1~10)>] [-p <sec(1~20)>]        - snr test, not affect service
sntp [-c <act/deact>] [-r <refresh time>] [-z <time zone>] [-s <set(0~1)> -a <address>]       - config sntp
stat [-r] [-d]       - display master ethernet rx/tx statistics ((no argument) - display master statistics in hexadecimal format, -d - display master statistics in decimal format, -r - reset statistic counters)
swconfig [-p <lan1/lan2/hpna> [-f <on/off>] [-s <auto/10h/10f/100h/100f>]]   - config master port ((no argument) - display current switch setting)
swcascade [-c <0/1/2/3>]  - master cascade mode control ((no argument) - display settings, -c <0/1/2/3> - 0:disable, 1:downlink LAN1 and uplink LAN2, 2:downlink LAN2 and uplink LAN1, 3:auto by STP, need reboot to take effect)
swigmp [-c <on/off>]     - master igmp snooping control
swloopdetect [-c <on/off>] - system loop detection control ((no argument) - display settings)
swqosq [-t <strict/wfq/mix>] [-p <0/1>, 0:802.1p(default), 1:IP TOS/TC or DSCP]     - config master qos q
swqosrate [-p <lan1/lan2/hpna> [-d <up/down>] [-c <on/off>] [-r <N(1~3125 rate=N*64kbps)>]]  - config master port rate
swqostc [-s <set(0~2)> [-c <act/deact>] [-p <port(0~65535)> -q <queue(0~3)>]]    - config master qos traffic classification
swsmac [-m <mac> -c <lan1/lan2/off/del>]     - config master static mac entry
swtagvlan [-c <on/off>] [-p <lan1/lan2/hpna> [-r <priority(0~7)>] [-v <vid(0~4095)>] [-i <all/tag>] [-o <untag/tag/bypass>]]  - config master tag vlan
tftp -s <server> -c <get/put> -f <file>        - tftp client
time        - display system time
upboot      - upgrade master bootcode ((no argument) - upgrade boot code, system will reboot)
upep [-a] [-m <mac>] [-n <note>] [-v]        - upgrade ep hpna driver (-a - update all ep)
upmaster    - upgrade master hpna driver ((no argument) - update hpna master driver)
upsys       - upgrade system firmware (-n - don't reboot hpna)
useradd имя -p <password> -r <ro/rw/super>     - add management user account
userdel имя    - delete management user account
users       - display all user accounts

VoIP commands:
epvoipnet   - config ep voip ip
epvoiprealm - config ep voip realm
epvoipsip   - config ep voip sip
epvoipcodec - config ep voip codec
epvoipqos   - config ep voip qos
epvoipdialplan - config ep voip dial plan
epvoipfxs   - config ep voip fxs
epvoiptone  - config ep voip tone
epvoipcall  - config ep voip call forwarding
epvoipsntp  - config ep voip sntp
epvoipsnmp  - config ep voip snmp
epdefault   - reset ep settings to factory default

команда -h  - справка по команде

Установка или активация telnet клиента в Windows 7

Telnet клиент присутствует в образе Windows однако стандартно он не установлен, поэтому для его установки/активации необходимо открыть командную строку (cmd) и набрать команду:

dism /online /Enable-Feature /FeatureName:TelnetClient

либо можно также установить открыв «Панель управления» -> «Удаление программы» или «Программы и компоненты» -> «Включение или отключение компонентов Windows», поставить галочку напротив «Клиент Telnet» и нажать «ОК».
Вот так вот можно включить telnet в Windows 7.
В дальнейшем клиентом можно пользоваться набирая в командной строке «telnet адрес_хоста».