13 нояб. 2024 г.

Backup Mikrotik configuration to FTP and SFTP

 Based on https://forum.mikrotik.com/viewtopic.php?p=1048273 by fra81ita
Added SFTP

### Set local variables. Change the value between "" to reflect your environment. Do not delete quotation marks.
:local ftpserver "FTP-SERVER-FQDN_or_IP-ADDRESS"
:local username "FTP-SERVER-USERNAME"
:local password "FTP-SERVER-PASSWORD"
:local remotedirectory "mikrotik"
### Set Local and Remote Filename variables. Do not change this unless you want to edit the format of the filename.
### Default "local file name" is always the same to avoid lots of files and running out of space, "remote file name" uploaded to FTP has the date
:local hostname [/system identity get name]
:local date ([:pick [/system clock get date] 7 11] \
. [:pick [/system clock get date] 0 3] \
. [:pick [/system clock get date] 4 6]);
:local localfilename "$hostname-Backup-Daily";
:local remotefilename "$remotedirectory/$hostname-$date";
### Enable for Debug removing staing hash in the following lines
:log info "$localfilename";
:log info "$remotefilename";
:log info "$hostname";
:log info "$date";
### Stating the Backup
:log info "STARTING BACKUP";
### Create backup file and export the config.
export compact file="$localfilename"
/system backup save name="$localfilename"
:log info "Backup Created Successfully"
### Upload backup file to FTP server.
/tool fetch address=$ftpserver src-path="$localfilename.backup" \
user=$username mode=ftp password=$password \
dst-path="$remotefilename.backup" upload=yes
:log info "Config Uploaded Successfully"
### Upload config file to FTP server.
/tool fetch address=$ftpserver src-path="$localfilename.rsc" \
user=$username mode=ftp password=$password \
dst-path="$remotefilename.rsc" upload=yes
:log info "Config Uploaded Successfully"
### Upload config file to SFTP server.
/tool fetch url="sftp://$ftpserver/home/mikrotik/$remotefilename.backup" src-path="$localfilename.backup" \
user=$username  password=$password \
 upload=yes
:log info "Backup Uploaded Successfully"
### Upload config file to SFTP server.
/tool fetch url="sftp://$ftpserver/home/mikrotik/$remotefilename.rsc" src-path="$localfilename.rsc" \
user=$username  password=$password \
 upload=yes
:log info "Config Uploaded Successfully"

### Wait 2 second before doing anything
delay 2;
### Remove starting hash in the following lines to delete created backup files once they have been uploaded. I usually let them there because it's useful having them ready.
#/file remove "$localfilename.backup"
#/file remove "$localfilename.rsc"
#:log info "Local Backup Files Deleted Successfully"
### Finishing the Backup
:log info "BACKUP FINISHED";

29 окт. 2024 г.

Python script ping and log

import subprocess, time
while True:
    result = None
    try:
        result = subprocess.check_output(['ping','-w', '1', '-c', '1', '-n', '-q' ,'192.168.0.1'])
        result = result.decode("utf-8").split('/')
        result = float(result[4])
    except:
        with open("mon.log", "a") as myfile:
            myfile.write(time.strftime('%X %x %Z')+' Ping error.\n')
        myfile.close()
    print result
    if result > 5 :
        with open("mon.log", "a") as myfile:
            myfile.write(time.strftime('%X %x %Z')+' '+str(result)+'\n')
        myfile.close()
    time.sleep(1)

 

20 авг. 2024 г.

Save credentials for windows terminal server

 Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CredentialsDelegation]
"AllowSavedCredentialsWhenNTLMOnly"=dword:00000001
“AllowSavedCredentials”=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CredentialsDelegation\AllowSavedCredentialsWhenNTLMOnly]
"1"="TERMSRV/*"
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CredentialsDelegation\AllowSavedCredentials]
"1"="TERMSRV/*"
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Policies\Microsoft\Windows\CredentialsDelegation]
“AllowSavedCredentialsWhenNTLMOnly”=dword:00000001
“AllowSavedCredentials”=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Policies\Microsoft\Windows\CredentialsDelegation\AllowSavedCredentialsWhenNTLMOnly]
"1"="TERMSRV/*"
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Policies\Microsoft\Windows\CredentialsDelegation\AllowSavedCredentials]
"1"="TERMSRV/*"

16 авг. 2024 г.

Asterisk Chanspy() - supervisor assistance

 exten => _555XXXX,1,Verbose(${CHANNELS()})
 same => n,Authenticate(2128)
 same => n,Answer
 same => n,Wait(1)
 same => n,ChanSpy(SIP/${EXTEN:3},qw)
 same => n,Hangup()

Where calling "555ext_num" connects to current conversation after password "2128#"

q - quiet mode
w - whisper mode (one side) 

10 июн. 2024 г.

RSYNC Cygwin to NAS326

 Rsync из Windows через cygwin уже был, вот здесь - https://dzelenov.blogspot.com/2014/07/rsync-windows-cwrsync.html

Усложняем задачу. Копировать надо с Windows (см. пред. статью) на ZyXel NAS326. Проблема та же - не съесть весь bandwidth.

1. На NAS надо поставить rsync. Для этого надо разрешить ssh в вебинтерфейсе 








и попасть в shell (busybox).

Потом из пакетов по этой статье - https://stepin.name/en/technoblog/080-rsync-on-nas326/
ставим rsync. Все хорошо, кроме того, что он удаляется после перезагрузки и надо скрипт выполнять заново.
Если коротко - ставим репозитарий и из него ставим rsync с зависимостями.

cat >/i-data/d732885c/install_rsync.sh <<EOF
curl -fLO http://entware.zyxmon.org/binaries/armv7/installer/entware_install.sh
chmod +x entware_install.sh
./entware_install.sh
/opt/bin/opkg install --force-space rsync
cp /opt/bin/rsync /bin
EOF
chmod 755 /i-data/d732885c/install_rsync.sh

2. Пробуем копировать файлы из Linux, типа 

rsync -e ssh --partial --progress --bwlimit=100K --time-limit=300 ~/rsynctest/* root@192.168.1.101:/i-data/022cf873/Video

Пароль спрашивает, но работает.

3. Ставим cygwin, пробуем из Windows - не работает.

Нужно:

- Создать файл ~/.ssh/config на Windows, вписать туда

Host NAS326
  HostName 192.168.1.101
  HostKeyAlgorithms=+ssh-rsa

чтобы ssh cygwin знал, что нужно использовать ключи rsa.

- сгенерировать пару ключей в Windows и отправить их в NAS

ssh_keygen -t rsa
ssh-copy-id root@NAS326

После этого можно уже запускать синхронизацию, обращаясь к NAS уже строго по имени.

rsync -e ssh --partial --progress --bwlimit=1000K --time-limit=300 /cygdrive/d/Backup/daily/* root@NAS326:/i-data/022cf873/Backup

Ключи:

--partial --progress -сохранять недокачанную часть, при повторном запуске продолжать
--bwlimit=1000K - скорость не больше 1Мбайт/с
--time-limit=300 - через 5 часов обрубить, так как будет нужен Интернет на полную.

Автоматизация запуска rsync на cygwin - по старой статье 2014 года.



9 дек. 2023 г.

HDD to SSD. Как перевести компьютер/ноутбук с HDD на SSD, если на нем Secure Boot и UEFI. Ошибка 0xc0000225

 Как перенести содержимое жесткого диска с HDD на SSD, если у вас обычная таблица MBR  - тут все достаточно понятно. Переносите разделы жесткого диска с одного носителя на другой, ставите соответствующие флаги, все работает.

С UEFI все немного сложнее.

4 окт. 2023 г.

Sync time in AD from Internet w32tm

On the time source of domain (1st dc)

w32tm /config /syncfromflags:manual /manualpeerlist:"0.us.pool.ntp.org 1.us.pool.ntp.org 2.us.pool.ntp.org 3.us.pool.ntp.org" /update
или
w32tm /config /syncfromflags:manual /manualpeerlist:"0.pool.ntp.org"

Stop-Service w32time
Start-Service w32time
или
net stop w32time
net start w32time

w32tm /query /status

6 апр. 2023 г.

S3 Linux



Для работы под Windows (и под Wine) есть бесплатная утилита - https://s3browser.com/
Требует .Net

Для работы под linux либо s3cmd - через команды, либо монтирование через FUSE - s3fs.

30 мар. 2023 г.

Disable and disconnect vpn users outside working hours - Mikrotik

 Add scheduler script at 18:00 every day

ppp secret disable [/ppp secret find name=johnsmith]
ppp active remove [/ppp active find name=johnsmith]

Add scheduler script at 09:00 every day

ppp secret enable  [/ppp secret find name=johnsmith]

9 февр. 2023 г.

Microtik ppp-up and ppp-down scripts Telegram notification

 Global script (go to /system script) name - SendTelegram

:global telegramMessage
:local botid
:local chatid
set botid "TOKEN"
set chatid "USERID"
if ($telegramMessage != "") do={
    /tool fetch url="https://api.telegram.org/bot$botid/sendMessage\?chat_id=$chatid&text=$telegramMessage" keep-result=no
    set telegramMessage ""
}