Скриптик переустановки пароля пользователя MikroTik
Скрипт интересен строкой преобразования кода символа из переменной
👉 @i_linux
# Скрипт смены пароля пользователя
# только для исполнения в терминале ROS
# by Sertik 09/06/2020
{
:global EnterString do={
:local cont 0; :local string ""
:while ($cont!=13) do={
:local key ([:terminal inkey])
:if ($key!=13) do={
:local char [[:parse "(\"\\$[:pick "0123456789ABCDEF" (($key >> 4) & 0xF)]$[:pick "0123456789ABCDEF" ($key & 0xF)]\")"]]
:set string ("$string"."$char")}
:set cont $key
}
:return $string}
;
:put "Please, enter Username:"
:local RegUser [$EnterString];
:put "";
:if ([:len [/user find disabled=no name=$RegUser]]!=0) do={:put "Ok, a user with this name was found"; :put "";
:put "Please, enter new password for this user:"
:local newPass [$EnterString];
[/user remove $RegUser];
[/user add name=$RegUser password=$newPass group=full];
:put "";
:put "The user has been re-created, the password has been changed";
:put ("New user`s password: "."$newPass");
:put "Don't forget to set up access restrictions based on ip addresses";
} else={:put ("User "."$RegUser "."not found"); :put "";
}
}
Скрипт интересен строкой преобразования кода символа из переменной
$key, сграбленного с клавиатуры терминала, в сам символ.:local char [[:parse "(\"\\$[:pick "0123456789ABCDEF" (($key >> 4) & 0xF)]$[:pick "0123456789ABCDEF" ($key & 0xF)]\")"]]👉 @i_linux
👍6
Как пробросить порт в Linux на другой сервер
Необходимо пробросить с 8821 порта сервера 10.10.10.10 на 21 порт сервера 12.12.12.12:
👉 @i_linux
Необходимо пробросить с 8821 порта сервера 10.10.10.10 на 21 порт сервера 12.12.12.12:
iptables -A FORWARD --dst 10.10.10.10 -p tcp --dport 8821 -j ACCEPT
iptables -A FORWARD --src 10.10.10.10 -p tcp --sport 8821 -j ACCEPT
iptables -t nat -A PREROUTING -d 10.10.10.10 -p tcp --dport 8821 -j DNAT --to-destination 12.12.12.12:21
iptables -t nat -A POSTROUTING -d 12.12.12.12 -p tcp --dport 21 -j SNAT --to-source 10.10.10.10:8821👉 @i_linux
👍12
Шпаргалка по RAID
Информация о RAID
Сборка RAID
при получении ответа mdadm: Unrecognised md component device -
* где /dev/md0 — устройство RAID, которое появится после сборки; -l 1 — уровень RAID; -n 2 — количество дисков, из которых собирается массив; /dev/sd{b,c} — сборка выполняется из дисков sdb и sdc.
Создание файловой системы и монтирование массива
nano /etc/fstab, прописать
Восстановление RAID
Замена жесткого диска
При выходе из строя, команда mdadm -D /dev/md0 выдаст: State : clean, degraded
Статус должен стать Rebuild Status : 40% complete и так до полного восстановления
Пересборка массива
Если нам нужно вернуть ранее разобранный или развалившийся массив из дисков, которые уже входили в состав RAID, вводим:
Запасной диск (Hot Spare)
Если в массиве будет запасной диск для горячей замены, при выходе из строя одного из основных дисков, его место займет запасной.
Добавить диск к массиву, расширить массив
Добавление активного диска к RAID, который будет использоваться для работы, а не в качестве запасного.
* в данном примере подразумевается, что у нас RAID 1 и мы добавили к нему 3-й диск.
Установка mdadm
Если каким-то образом в дистрибутиве нет этого пакета
Удаление массива
Если нам нужно полностью разобрать RAID, сначала размонтируем и остановим его:
* где
Затем очищаем суперблоки на всех дисках, из которых он был собран:
👉 @i_linux
mdadm — утилита для работы с программными RAID-массивами различных уровней. В данной инструкции рассмотрим примеры ее использования.Информация о RAID
cat /proc/mdstat - состояние всех RAIDmdadm -D /dev/md0 - подробная инфа о конкретном RAIDlsblk - список дисков с разделами, местом, типомdf -hT - свободное место, тип файловой системы, точки монтированияСборка RAID
mdadm —zero-superblock —force /dev/sd{b,c} - обнуление суперблоков на дисках sdb sdc (для удаления инфы о других RAID)при получении ответа mdadm: Unrecognised md component device -
/dev/sdb значит, что диск не использовался для RAID, продолжаемmdadm —create —verbose /dev/md0 -l 1 -n 2 /dev/sd{b,c}* где /dev/md0 — устройство RAID, которое появится после сборки; -l 1 — уровень RAID; -n 2 — количество дисков, из которых собирается массив; /dev/sd{b,c} — сборка выполняется из дисков sdb и sdc.
Создание файловой системы и монтирование массива
mkfs.ext4 /dev/md0 - создание файловой системы ext4 на md0mount /dev/md0 /mnt - разово примонтировать md0 к /mntnano /etc/fstab, прописать
/dev/md0 /mnt ext4 defaults 1 2 - постоянное монтирование, работает после перезагрузкиВосстановление RAID
Замена жесткого диска
При выходе из строя, команда mdadm -D /dev/md0 выдаст: State : clean, degraded
mdadm /dev/md0 —remove /dev/sdc - удалить сбойный дискmdadm /dev/md0 —add /dev/sde - добавить новый диск в массивСтатус должен стать Rebuild Status : 40% complete и так до полного восстановления
Пересборка массива
Если нам нужно вернуть ранее разобранный или развалившийся массив из дисков, которые уже входили в состав RAID, вводим:
mdadm —assemble —scan - команда сама найдет необходимую конфигурацию и восстановит RAID.mdadm —assemble /dev/md0 /dev/sdb /dev/sdc - с указанием из каких дисков пересобратьЗапасной диск (Hot Spare)
Если в массиве будет запасной диск для горячей замены, при выходе из строя одного из основных дисков, его место займет запасной.
mdadm /dev/md0 —add /dev/sdd - Диском Hot Spare станет тот, который просто будет добавлен к массивуДобавить диск к массиву, расширить массив
Добавление активного диска к RAID, который будет использоваться для работы, а не в качестве запасного.
mdadm /dev/md0 —add /dev/sdemdadm -G /dev/md0 —raid-devices=3 - расширяем RAID* в данном примере подразумевается, что у нас RAID 1 и мы добавили к нему 3-й диск.
Установка mdadm
Если каким-то образом в дистрибутиве нет этого пакета
apt-get install mdadmУдаление массива
Если нам нужно полностью разобрать RAID, сначала размонтируем и остановим его:
umount /mnt* где
/mnt — каталог монтирования нашего RAID.mdadm -S /dev/md0Затем очищаем суперблоки на всех дисках, из которых он был собран:
mdadm —zero-superblock /dev/sdb
mdadm —zero-superblock /dev/sdc
mdadm —zero-superblock /dev/sdd👉 @i_linux
👍7
Файловый сервер SFTPGo
Полнофункциональный и высококонфигурируемый SFTP-сервер с дополнительной поддержкой HTTP/S, FTP/S и WebDAV - S3, Google Cloud Storage, Azure Blob
https://github.com/drakkan/sftpgo
👉 @i_linux
Полнофункциональный и высококонфигурируемый SFTP-сервер с дополнительной поддержкой HTTP/S, FTP/S и WebDAV - S3, Google Cloud Storage, Azure Blob
https://github.com/drakkan/sftpgo
👉 @i_linux
👍5