From: vados-dev Date: Mon, 2 Mar 2026 22:38:29 +0000 (+0300) Subject: mikro_bak Initial Commit X-Git-Url: https://git.vados.ru/gitweb.cgi?a=commitdiff_plain;h=1d8df866a7ac69648a0b4f288a490fdda47ee5b0;p=Mikrotiks%2FMikrotiks.git mikro_bak Initial Commit --- 1d8df866a7ac69648a0b4f288a490fdda47ee5b0 diff --git a/.bak/ROSdiff.sh b/.bak/ROSdiff.sh new file mode 100755 index 0000000..f1f4e7c --- /dev/null +++ b/.bak/ROSdiff.sh @@ -0,0 +1,153 @@ +#!/bin/bash +# +# https://dzen.ru/a/ZXWKq1L35Em2EHex?ysclid=mlt10qkrsb471483043 +# +# Use: ./ROSdiff.sh RoutrName SSH_IP SSH_Port +# Last Backups: ls -l $backuppath +# History: ls -l $backuppath/history +# Add to cron +# crontab -e +# 0 20 * * * /var/www/ros.vados.ru/Mikrotiks/.bin/ROSdiff.sh MikroMaster 10.30.30.81 2222 +# + +routers=( 10.30.30.10 10.30.30.81 ) + +date=$(date +%d-%m-%Y) +time=$(date +%H-%M) + +GEN_DATE=$(date '+%Y-%m-%d %H:%M:%S %z') +DTStamp=$(date '+%Y%m%d%H%M%S') + +SSHhost="undefined" +SSHport="2222" +SSHuser="mikro_bak" +SSHpassword="Peskar55" + +BaseDir="/var/www/ros.vados.ru/Mikrotiks" +#$HOME + +HostsFile="${BaseDir}/.mikrotiks" +BackupDir="${BaseDir}/backups" +BackTemp="${BackupDir}/tmp" + +Log="undefined" +RouterName="undefined" + +SSH_KEY=$BaseDir"/.ssh/id_rsa" +SSH_OPTS="-i $SSH_KEY -o PasswordAuthentication=no -p $SSHport" +# Require router-specific SSH key +if [ ! -f "$SSH_KEY" ]; then + echo "Error: SSH key not found at $SSH_KEY" + echo "Run ./setup-ssh-keys.sh to generate the key" + exit 1 +fi +############################### +# Backup listing +############################### +# Get Names Addresses and Ports +# for SSHhost in $( cat $HostsFile ); do +#IFS=$'\n' # make newlines the only separator +readarray -t lines < $HostsFile +set -f +for HR in "${lines[@]}"; do +while IFS=$' ' read -a line || [ -n "$line" ]; do +[[ -z ${line[0]} ]] && continue +${BaseDir}/.bin/rdiff.sh ${line[0]} ${SSHuser} ${line[1]} ${line[2]} +#echo ${line[0]} +#echo ${SSHuser} +#echo ${line[1]} +#echo ${line[2]} +#readarray -t lines < $HostsFile + +#while IFS=" " read -r "${lines[@]}" -a line ; do + +#for line in "${lines[@]}"; +#do +# echo "$line" +done <<<"$(echo -e $HR)" +done +exit 0 + +#cat $HostsFile | while IFS=" " read -a line ; do +# || [ -n "$line" ]; do +#[[ -z ${line[0]} ]] && continue + +for SSHhost in ${routers[@]}; do +RouterName=$(ssh ${SSH_OPTS} ${SSHuser}@${SSHhost} /system/identity/get name | echo $1); +# awk '{print $2}'); +sleep 2 +echo $RouterName +#${BaseDir}/.bin/rdiff.sh ${RouterName} ${SSHuser} ${SSHhost} ${SSHport} +# ${line[0]} ${line[1]} ${line[2]} + +done +exit 0 + +for SSHhost in ${routers[@]}; do + +RouterName=$(ssh ${SSH_OPTS} ${SSHuser}@${SSHhost} system identity print | awk '{print $2}'); + +RouterDir="${BackupDir}/${RouterName}" +HistoryDir="${RouterDir}history" +echo $HistoryDir +RouterTemp="${BackTemp}/${RouterName}" +Log="${RouterTemp}log.txt" +echo $Log +echo ${RouterName} + +precedent_export_name=${RouterName}"-config-export-precedent.rsc" +pen=${RouterName}'-config-export-precedent.rsc' +echo ${pen} + +current_export_name="$RouterName-config-export-current.rsc" +current_backup_name="$routername-config-backup-current.backup" +diff_export_name="$routername-config-export-diff.rsc" + +current_export_name_history="$routername-$(date +%Y-%m-%d-%H-%M)-config-export-current.rsc" +current_backup_name_history="$routername-$(date +%Y-%m-%d-%H-%M)-config-backup-current.backup" +diff_export_name_history="$routername-$(date +%Y-%m-%d-%H-%M)-config-export-diff.rsc" +exit 0 + +echo "Create tmp directory..." +mkdir -p $routertmp +echo "tmp directory created $routername $routertmp ($time)." >> $routerlog +echo +echo "Create backup directory..." +mkdir -p $routerpath +echo "Backups directory created $routername $routerpath ($time)." >> $routerlog +echo +echo "Create history directory..." +mkdir -p $routerhistory +echo "Backups directory created $routername $routerhistory ($time)." >> $routerlog +echo + +cd $routerpath +echo "SSH connect to $routername..." +echo "Create configuration $routername..." +#ssh $SSH_OPTS $username"@"$i" /export file=export.rsc"; +sshpass -p $sshpassword ssh -o StrictHostKeyChecking=no $sshuser@$sshhost -p $sshport export >$current_export_name +echo + +diff -I "RouterOS" $current_export_name $routerpath/$precedent_export_name > $diff_export_name + +if [ "$?" -ne "0" ]; then +sshpass -p $sshpassword ssh -o StrictHostKeyChecking=no $sshuser@$sshhost -p $sshport export file=$current_export_name +sshpass -p $sshpassword ssh -o StrictHostKeyChecking=no $sshuser@$sshhost -p $sshport system backup save name=$current_backup_name +sshpass -p $sshpassword sftp -o StrictHostKeyChecking=no -oPort=$sshport $sshuser@$sshhost:$current_backup_name + +rm -f $precedent_export_name + +cp $current_export_name $backuppath"/history/"$current_export_name_history +cp $current_backup_name $backuppath"/history/"$current_backup_name_history +mv $diff_export_name $backuppath"/history/"$diff_export_name_history + +mv -f $current_export_name $precedent_export_name +rm -f $diff_export_name +#exit 1 +fi + +mv -f $current_export_name $precedent_export_name +rm -f $diff_export_name + +#exit 0 +done diff --git a/.bak/get_backups.sh b/.bak/get_backups.sh new file mode 100755 index 0000000..8924bf4 --- /dev/null +++ b/.bak/get_backups.sh @@ -0,0 +1,109 @@ +#!/bin/bash +date=$(date +%d-%m-%Y) +time=$(date +%H-%M) +username="mikro_bak" +mikrotik=$HOME"/.mikrotiks" +backup_path=$HOME"/backups" +tmp=$HOME"/tmp" +log=$tmp"/log.txt" +SSH_KEY="$HOME/.ssh/id_rsa" +SSH_OPTS="-i $SSH_KEY -o PasswordAuthentication=no -p 2222" +#-------------------------------# +smb_path_backup="//192.168.1.2/Backups" +domain="WORKGROUP" +usrname="backuper" +passwd="root.mikrots.backuper" +# Require router-specific SSH key +if [ ! -f "$SSH_KEY" ]; then + echo "Error: SSH key not found at $SSH_KEY" + echo "Run ./setup-ssh-keys.sh to generate the key" + exit 1 +fi +################ +# Backup listing +################ +# Get addresses +for i in $( cat $mikrotik ); do +mkdir -p $tmp"/"$i +# Get Devices Names +#ssh $SSH_OPTS "$ROUTER_USER@$ROUTER_IP" +RESULT=$(ssh $SSH_OPTS $username"@"$i" /system/identity print" | awk ' {print $2} '); +#RESULT=$(ssh $username"@"$i" -p 2222 system identity print" | awk ' {print $2} '); +echo "Start backup Devices" +echo "Start backup Devices Mikrotiks ($time) $RESULT" > $log +echo "Create Backup $i..." +ssh $SSH_OPTS $username"@"$i" /system/backup save name=binary.backup"; +#ssh $username"@"$i" -p 2222 system backup save name=binary.backup"; +if [ $? -eq 0 ]; then +echo -n "$(tput hpa $(tput cols))$(tput cub 6)[OK]" +echo "Create Backup $i success ($time)" >> $log +echo +else +echo -n "$(tput hpa $(tput cols))$(tput cub 6)[ERROR]" +echo "Createbackup $i failed ($time)" >> $log +echo +fi + +echo "Create configuration $i..." +#ssh $SSH_OPTS $username"@"$i" /export file=export.rsc;" +#ssh $username"@"$i" -p 2222 export file=export.rsc"; +ssh $SSH_OPTS $username"@"$i" export file=export.rsc; delay 3s;" +if [ $? -eq 0 ]; then +echo -n "$(tput hpa $(tput cols))$(tput cub 6)[OK]" +echo "Create configuration $i success ($time)" >> $log +echo +else +echo -n "$(tput hpa $(tput cols))$(tput cub 6)[ERROR]" +echo "Create configuration $i failed ($time)" >> $log +echo +fi +echo "Create backups directory..." +mkdir -p $tmp/$i/$date/ +echo "Backups directory created $i ($time)" >> $log +echo +echo "Download backup files $i..." +sftp $SSH_OPTS "sftp://"$username"@"$i"/binary.backup" $tmp/$i/$date/$i"-"$time".backup"; +scp $SSH_OPTS "$username@$i:export.rsc" $tmp/$i/$date/$i"-"$time".rsc"; +#sftp "ssh://"$username"@"$i":2222/binary.backup" $tmp/$i/$date/$i"-"$time".backup"; +#sftp "ssh://"$username"@"$i":2222/export.rsc" $tmp/$i/$date/$i"-"$time".rsc"; +if [ $? -eq 0 ]; then +echo -n "$(tput hpa $(tput cols))$(tput cub 6)[OK]" +echo "Download backups $i success ($time)" >> $log +echo +else +echo -n "$(tput hpa $(tput cols))$(tput cub 6)[ERROR]" +echo "Download backups $i failed ($time)" >> $log +echo +fi + +echo "Compress backups..." +cd $tmp/$i/ +RESULT=$(tar -czvf $date".tar.gz" $date) +echo "Backups compressed ($time)" >> $log + +#echo "Connect to network share $smb_path_backup..." +#RESULT=$(cat /home/Mikrotiks/sudos | sudo -S -u root mount -t cifs $smb_path_backup /mnt/samba -o username=$usrname,password=$passwd,domain=$domain) +#echo "Networkshare $smb_path_backup connected ($time)" >> $log + +echo "Create directory for backups device $i..." +#RESULT=$(cat /home/Mikrotiks/sudos | sudo -S -u root mkdir -p /mnt/samba/Mikrotik/$i) +RESULT=$(mkdir -p $backup_path"/"$i) +echo "Directory for backup device $i created in network share ($time)" >> $log + +echo "Place backups in network share" +#RESULT=$(cat /home/Mikrotiks/sudos | sudo -S -u root mv $tmp/$i/$date".tar.gz" "/mnt/samba/Mikrotik/$i/$date.tar.gz") +RESULT=$(mv $tmp/$i/$date".tar.gz" $backup_path"/"$i"/"$date".tar.gz") +echo "Backups $i moved to $backup_path"/"$i ($time)" >> $log +echo "" >> $log + +#RESULT=$(cat /home/Mikrotiks/sudos | sudo -S -u root mv $log "/mnt/samba/MIkrotik/$i/$date.log.txt") +RESULT=$(mv $log $backup_path"/"$i/$date".log.txt") + +echo "Remove local backup files device $i" +ssh $SSH_OPTS "$username@$i /file remove binary.backup"; +ssh $SSH_OPTS "$username@$i /file remove export.rsc"; +#rm -r -f $tmp + +#cat /home/Mikrotiks/sudos | sudo -S -u root umount $smb_path_backup +#cat /home/Mikrotiks/sudos | sudo -S -u root umount $smb_path_backup +done diff --git a/.bak/test.sh b/.bak/test.sh new file mode 100755 index 0000000..d42de8f --- /dev/null +++ b/.bak/test.sh @@ -0,0 +1,127 @@ +#!/bin/bash + +while IFS=" " read -a line -r || [ -n "$line" ]; do + + + +date=$(date +%d-%m-%Y) +time=$(date +%H-%M) + +sshuser="mikro_bak" +sshpassword="Peskar55" + +homepath="/var/www/ros.vados.ru/Mikrotiks" + +mikrotik_file=$homepath"/.mikrotiks" +backuppath=$homepath"/backups" +tmp="." +log=$tmp"/log.txt" + +SSH_KEY=$homepath"/.ssh/id_rsa" +# Require router-specific SSH key +if [ ! -f "$SSH_KEY" ]; then + echo "Error: SSH key not found at $SSH_KEY" + echo "Run ./setup-ssh-keys.sh to generate the key" + exit 1 +fi +#export IFS=" " +SSH_OPTS="-i "$SSH_KEY" -o PasswordAuthentication=no -p 2222" + +RESULT=$(ssh $SSH_OPTS $sshuser@10.30.30.10 system identity print | awk ' {print $2} '); +echo +echo $RESULT +echo +exit 0 +#RESULT=(ssh $SSH_OPTS $sshuser"@10.30.30.10" /system/identity print") >> ./ident.txt +# | awk ' {print $2} ' >> ./ident.txt + +#readarray -t lines < "$mikrotik_file" +cat $mikrotik_file | while read -r lines ; do +for line in "${lines}" ; do +echo +#echo $line[$1] +#echo $line[$2] +echo $1 +echo +done +done +exit 0 + +#for i in $( cat $mikrotik_file ) ; do +#cat $mikrotik_file | while read -r line ; do +#-a HR ; do +# [[ -z $0 ]] && continue # skip empty lines +set -- $line +echo +echo "line = "$line +echo +# [[ -z ${line[0]} ]] && continue # skip empty lines +echo $@ +echo +routername=$1 +#${HR[0]} +sshhost=$2 +#${HR[1]} +sshport=$3 +#${HR[2]} + +SSH_OPTS="-i "$SSH_KEY" -o PasswordAuthentication=no -p "$sshport" "$sshuser"@"$sshhost + +current_export_name=$routername"-config-export-current.rsc" + +echo +echo $routername +echo +echo $current_export_name +echo + + +#echo "Get current export file ($time) "$RESULT +# >> $log +#sshpass -p $sshpassword ssh -o StrictHostKeyChecking=no $sshuser@$sshhost -p $sshport export >$current_export_name +ssh $SSH_OPTS " export file="$current_export_name"; delay 3s;" && continue +if [ $? -eq 0 ]; then +echo -n "$(tput hpa $(tput cols))$(tput cub 6)[OK]" +echo "Create configuration $routername success ($time)" +# >> $log +echo +else +echo -n "$(tput hpa $(tput cols))$(tput cub 6)[ERROR]" +echo "Create configuration $i failed ($time)" +# >> $log +echo +fi + +done +#done +#exit 0 +# cat $mikrotik_file | while read -a HR ; do +# [[ -z ${HR[0]} ]] && continue # skip empty lines +#while IFS=" " read -a line -r || [ -n "$line" ]; do +#echo $line +#echo ${line[0]} +#echo ${line[1]} +#echo ${line[2]} +#echo ${line[3]} +#RouterName=${line[0]} +#SSHhost=${line[1]} +#SSHport=${line[2]} + +#SSH_OPTS="-i $SSH_KEY -o PasswordAuthentication=no -p $SSHport" +#current_export_name="$RouterName-config-export-current.rsc" +#ssh $SSH_OPTS $SSHuser@$SSHhost export >$current_export_name +# 2>&1 +# "; delay 3s;" && continue +# sshpass -p $SSHpassword ssh -o StrictHostKeyChecking=no $SSHuser@$SSHhost -p $SSHport export >$current_export_name + +# Escape backslashes, dollar signs, and quotes +# line=$(echo "$line" | sed 's/\\/\\\\/g' | sed 's/\$/\\$/g' | sed 's/"/\\"/g') +# if [ -z "$SCRIPT_CONTENT" ]; then +# SCRIPT_CONTENT="$line" +# else +# SCRIPT_CONTENT="$SCRIPT_CONTENT\\n$line" +# fi +#continue +#done < "$HostsFile" +exit 0 + diff --git a/.bash_history b/.bash_history new file mode 100644 index 0000000..2022527 --- /dev/null +++ b/.bash_history @@ -0,0 +1,592 @@ +exit +ssh-keygen -t rsa -b 2048 +mc +cd .bin +ls -la +cd ~ +ls -la +cd .bin/ros-conf/ +ls -la +./setup-ssh-keys.sh +ssh mikro_bak@10.30.30.10 +ssh mikro_bak@10.30.30.10 2222 +ssh mikro_bak@10.30.30.10 -p 2222 +exit +ssh mikro_bak@10.30.30.10 -p 2222 +cd ~./bin +ls -la +cd ~ +cd .bin/ +ls -la +cd ros-conf/ +ls -la +mc +./setup-ssh-keys.sh +ssh mikro_bak@10.30.30.10 -p 2222 +ls -la . +./setup-ssh-keys.sh +ssh://mikro_bak@10.30.30.10:2222 +ssh ssh://mikro_bak@10.30.30.10:2222/ +ls -la +cd .bin/ +cd ros-conf/ +ls -la +./setup-ssh-keys.sh +mc +exit +./setup-ssh-keys.sh +source ~/.bashrc +mc +./setup-ssh-keys.sh +ls -la . +cd .bin/ +ls -la . +cd ros-conf/ +./setup-ssh-keys.sh +exit +./setup-ssh-keys.sh +../ +cd ~ +cd .bin/ +cd ros-conf/ +./setup-ssh-keys.sh +mc +exit +cd ~ +cd .bin/ +cd ros-conf/ +./setup-ssh-keys.sh +ssh mikro_bak@10.30.30.10 -p 2222 +./setup-ssh-keys.sh +cat mikro_bak_rsa@10.30.30.81.pub +ssh mikro_bak@10.30.30.10 -p 2222 +ssh mikro_bak@10.30.30.81 -p 2222 +] +"| +'57777774799666999-9600609+ +q +\ +; +# + +ssh ssh://mikro_bak@10.30.30.81:2222 +./setup-ssh-keys.sh +ssh ssh://mikro_bak@10.30.30.81:2222 +ssh mikro_bak@10.30.30.81 +ssh mikro_bak@10.30.30.81 -p 2222 +mc +exit +cat mikro_bak_rsa@10.30.30.81.pub >> known_hosts +ssh mikro_bak@10.30.30.81 -p 2222 +ssh mikro_bak@10.30.30.81 -p 2222 +ssh -vvv mikro_bak@10.30.30.81 -p 2222 +mc +exit +ssh -vvv mikro_bak@10.30.30.81 -p 2222 +mc +ssh -vvv mikro_bak@10.30.30.81 -p 2222 + +\[' +p[ol-0]\p;l-]\ +p;ki +exit +mc +ssh -vvv mikro_bak@10.30.30.81 -p 2222 +ssh mikro_bak@10.30.30.10 -p 2222 +mc +exit +chmod +x get_backups.sh +./test.sh +./get_backups.sh +ssh mikro_bak@10.30.30.10 -p 2222 +ssh mikro_bak@10.30.30.81 -p 2222 +mc +exit +./test.sh +exit +bash --version +readarray -t lines < "$mikrotik_file" +readarray -t lines < "../.mikrotik" +readarray -t lines < "../.mikrotiks" +echo $lines +readarray lines < "../.mikrotiks" +echo $lines +readarray lines < "../.mikrotiks" +echo $lines +readarray lines < "../.mikrotiks" +echo $lines +./test.sh +./test.sh +./ROSdiff.sh +/ROSdiff.sh +ROSdiff.sh +./ROSdiff.sh +exit +bash -V +bash --version +./test.sh +./test.sh +/bin/bash +./ROSdiff.sh +exit +./test.sh +sshpass -h +./test.sh +bash -v +exit +./test.sh +mc +exit +./ROSdiff.sh +exit +mc +./ROSdiff.sh +exit +./ROSdiff.sh +./ROSdiff.sh +ls -la . +mc +./ROSdiff.sh +mc +exit +./ROSdiff.sh +exit +./ROSdiff.sh +exit +./ROSdiff.sh +sed -i 's/\r//' ./ROSdiff.sh +./ROSdiff.sh +./ROSdiff.sh +touch rdiff.sh +chmod +x rdiff.sh +./ROSdiff.sh +exit +./ROSdiff.sh +exit +./ROSdiff.sh +mc +./ROSdiff.sh +exit +chmod +x ros-deploy.sh +exit +./ROSdiff.sh +mc +exit +chmod +x ros-deploy.sh +./ros-deploy.sh -h +./ros-deploy.sh -H +git clone https://github.com/tarikin/ros-deploy.git +./ros-deploy.sh --help +./ROSdiff.sh +./ros-deploy.sh -h mikro_bak@10.30.30.81:2222 -s ./scripts/mktmpfs.rsc -i ../.ssh/id_rsa +./ROSdiff.sh +ssh-add +ssh -i +./ROSdiff.sh +ssh -i ../.ssh/id_rsa +mc +exit +./ROSdiff.sh +scp +./ROSdiff.sh +wget https://github.com/tarikin/ros-deploy/archive/refs/tags/v1.2.1.tar.gz +mc +exit +./ROSdiff.sh +diff ./get_backups.sh ../.bak/get_backups.sh >> get_backups.diff +touch config +./ROSdiff.sh +source ~/.bashrc +mc +./ROSdiff.sh +mc +./ROSdiff.sh +mc +./ROSdiff.sh +mc +./ROSdiff.sh +mc +./ROSdiff.sh +mc +./rdiff.sh +mc +./rdiff.sh +mc +ssh mikro_bak@10.30.30.86 -p 2222 +mc +./ros-diff.sh +./ros-diff.sh +mc +./ros-diff.sh +crontab -e */20 * * * * /var/www/ros.vados.ru/Mikrotiks/.bin/ros-diff.sh +crontab -u $whoami -e */20 * * * * /var/www/ros.vados.ru/Mikrotiks/.bin/ros-diff.sh +crontab -l +crontab -e +crontab -l +mc +./run.sh +vigr +./run.sh +passwd mikro_bak +./run.sh +git init +git config --global amster-dev +git config --global vados-dev +git branch -m main +git add MikroNUC/ +git add MikroMaster/ +git add MikroYellow/ +git commit MikroNUC/ -m "Initial Commit" +git commit MikroMaster/ -m "Initial Commit" +git commit MikroYellow/ -m "Initial Commit" +git push ~/backups +git push ~/backups main +git config --global init.defaultBranch main +git config core.repositoryformatversion 0 +git config core.filemode true +git config core.bare true +git config receive.denyCurrentBranch ignore +git remote add origin git@amster-nuc:/.data/nfs/git/Mikrotiks/backup_configs.git +git push origin main +git remote add origin git@amster-nuc:/.data/nfs/git/Mikrotiks/backup_configs.git +git push origin main +ssh git@amster-nuc +cat id_rsa.mikro_bak.pub +ssh git@amster-nuc +ssh-keygen -t rsa -b 2048 +cat id_rsa.mikro_bak.pub +ssh git@amster-nuc +ssh mikro_bak@amster-nuc +ssh git@amster-nuc +ssh -vvv git@amster-nuc +ssh-keygen -t rsa -b 2048 +ssh-keygen -t rsa -b 2048 -C "git@amster-nuc" +cat id_rsa.mikro_bak.amster-nuc.pub +ssh -vvv git@amster-nuc +cat id_rsa.pub +ssh -vvv git@amster-nuc +git push origin main +git init +git add . +git commit -m 'Initial commit' +git remote add origin git@amster-nuc:/.data/nfs/git/Mikrotiks/backup_configs.git +git push origin main +git clone git@amster-nuc:/.data/nfs/git/Mikrotiks/backup_configs.git +ls -la . +git commit -m 'Add .gitignore' +git add . +git commit -m 'Add .gitignore' +git push origin main +git clone git@amster-nuc:/.data/nfs/git/Mikrotiks/backup_configs.git +git push origin main +git clone git@amster-nuc:/.data/nfs/git/Mikrotiks/backup_configs.git +git add . +git commit -m 'Edit .gitignore' +git push origin main +git clone git@amster-nuc:/.data/nfs/git/Mikrotiks/backup_configs.git +git config --global user.name mikro_bak +git config --global user.email vados@vados.ru +git init +git add . +git commit -m 'Initial commit' +git init +git add . +git commit -m 'Initial commit' +git remote add origin mikro_bak@amster-nuc:/.data/nfs/git/Mikrotiks/backups.git +git push origin main +git remote add origin git@amster-nuc:/.data/nfs/git/Mikrotiks/backups.git +git remote remove origin mikro_bak@amster-nuc:/.data/nfs/git/Mikrotiks/backups.git +git remote remove origin mikro_bak@amster-nuc +git remote remove mikro_bak@amster-nuc +git remote remove origin mikro_bak@amster-nuc +git init +git add . +git commit -m 'Initial commit' +git remote add origin git@amster-nuc:/.data/nfs/git/Mikrotiks/backups.git +git push origin main +git clone git@amster-nuc:/.data/nfs/git/Mikrotiks/backup_configs.git +git clone git@amster-nuc:/.data/nfs/git/Mikrotiks/backups.git +./ros-diff.sh +cat authorized_keys +cat id_rsa +cat id_rsa.pub +git init +git add . +git commit -m 'Initial commit' +ssh git@vados-nuc +git remote add origin git@vados-nuc:/backups.git +git push origin main +git init +git add . +git commit -am 'Initial commit' +git remote add origin git@vados-nuc:d:/.bak/Mikrotiks/backups.git +git push origin main +git config --local remote.origin.receivepack "powershell git-receive-pack" +git config --local remote.origin.uploadpack "powershell git-upload-pack" +git push origin main +$env:GIT_SSH_COMMAND = '"C:\WINDOWS\System32\OpenSSH\ssh.exe" -T' +git config --local remote.origin.receivepack "powershell git-receive-pack" +git config --local remote.origin.uploadpack "powershell git-upload-pack" +git fetch origin +git remote add origin git@vados-nuc:/d/.bak/Mikrotiks/backups.git +git init +git add . +git commit -am 'Initial commit' +git remote add origin git@vados-nuc:/d/.bak/Mikrotiks/backups.git +git fetch origin +git config --local remote.origin.uploadpack "powershell git-upload-pack" +git config --local remote.origin.receivepack "powershell git-receive-pack" +git fetch origin +git push origin +git push --set-upstream origin main +git push --set-upstream origin main -vvv +ping vados-nuc +git push --set-upstream origin main -vvv +git push --set-upstream origin main +source ~/.bashrc +git push --set-upstream origin main +source ~/.bashrc +git push --set-upstream origin main +source ~/.bashrc +git push --set-upstream origin main +ssh git@vados-nuc +ssh-add +git config --global core.sshCommand "C:/Windows/System32/OpenSSH/ssh.exe" eval $(ssh-agent) +git push --set-upstream origin main +ls -al ~/.ssh +source ~/.bashrc +git push --set-upstream origin main +source ~/.bashrc +git push --set-upstream origin main +source ~/.bashrc +git push --set-upstream origin main +git fetch origin +GIT_SSH_COMMAND="ssh -v" git fetch +git fetch origin +git init +git add . +git commit -am 'Initial commit' +git fetch origin +git push --set-upstream origin main +git remote add origin git@vados-nuc:/d/.bak/Mikrotiks/ba +git push --set-upstream origin main +git fetch origin +git push --set-upstream origin main +git fetch origin +git push --set-upstream origin main +git fetch origin +git push --set-upstream origin main +git fetch origin +git fetch origin -v +git -vvv fetch origin +git -v fetch origin +GIT_SSH_COMMAND="ssh -v" git fetch +git fetch origin +GIT_SSH_COMMAND="ssh -v" git fetch +git fetch origin +GIT_SSH_COMMAND="ssh -v" git fetch +git fetch origin +GIT_SSH_COMMAND="ssh -v" git fetch +git config --list +git config --global protocol.version 2 +git config --list +git fetch origin +GIT_SSH_COMMAND="ssh -v" git fetch +git config --local remote.origin.receivepack "powershell git-receive-pack" +git config --local remote.origin.uploadpack "powershell git-upload-pack" +git fetch origin +GIT_SSH_COMMAND="ssh -v" git fetch +git fetch origin +GIT_SSH_COMMAND="ssh -v" git fetch +git fetch origin +GIT_SSH_COMMAND="ssh -v" git fetch +git fetch origin +git push --set-upstream origin main +git fetch origin +./ros-diff.sh +git add . +git init +git add . +git commit 'Reinit commit' +git commit -m 'Reinit commit' +git fetch origin +git push --set-upstream origin main +git add . +./ros-diff.sh +git fetch origin +git config --local remote.origin.uploadpack "powershell git-upload-pack" +git config --local remote.origin.receivepack "powershell git-receive-pack" +git fetch origin +GIT_SSH_COMMAND="ssh -v" git fetch +git fetch origin +GIT_SSH_COMMAND="ssh -v" git fetch +./ros-diff.sh +set -o +set -o piperfail +set -o pipefail +set -o +set +o pipefail +set -o +set +o pipefail +set -o +set +e +set -o +set -e +set -o +./ros-diff.sh +rm -d tmp/ +./ros-diff.sh +cat ros-deploy.sh +./ros-diff.sh +\date '+%d.%m.%Y'date '+%d.%m.%Y'date '+%d.%m.%Y'date '+%d.%m.%Y'date '+%d.%m.%Y'date '+%d.%m.%Y' +\date '+%d.%m.%Y'date '+%d.%m.%Y'date '+%d.%m.%Y'date '+%d.%m.%Y'date '+%d.%m.%Y'date '+%d.%m.%Y'date '+%d.%m.%Y' +(date '+%d.%m.%Y') +(date '%H:%M:%S %z') +(date '+%H:%M:%S %z') +./ros-diff.sh +kdialog --password "Пожалуйста, введите свой пароль:"kdialog --password "Пожалуйста, введите свой пароль:"kdialog --password "Пожалуйста, введите свой пароль:" +clear +reset +dialog --title " Уведомление " --msgbox "\n Свершилось что-то страшное!" 6 50 +echo -n "Продолжить? (y/n) " +read item +case "$item" in y|Y) echo "Ввели «y», продолжаем..."; ;; n|N) echo "Ввели «n», завершаем..."; exit 0; ;; *) echo "Ничего не ввели. Выполняем действие по умолчанию..."; ;; esac +$(tput setf 4) +echo tt +echo -n "$(tput setf 4) ee" +echo -n "$(tput setf 2) ee" +./test.sh +./ros-diff.sh +'\033[0m' +\033[0m +reset +./ros-diff.sh +gg +./ros-diff.sh +git clone https://github.com/lnfnunes/bash-progress-indicator.git +./ros-diff.sh +main.sh spinner 1 +./main.sh spinner 1 +./main.sh spinner1 +cd .. +./ros-diff.sh +clear +./ros-diff.sh +ssh -i /var/www/ros.vados.ru/Mikrotiks/.ssh/id_rsa -o PasswordAuthentication=no -p 2222 mikro_bak@10.30.30.10 export >Config.rsc +ssh -i /var/www/ros.vados.ru/Mikrotiks/.ssh/id_rsa -o PasswordAuthentication=no -p 2222 mikro_bak@10.30.30.10 export >Config.rsc 2>1 +ssh -i /var/www/ros.vados.ru/Mikrotiks/.ssh/id_rsa -o PasswordAuthentication=no -p 2222 mikro_bak@10.30.30.10 export >Config.rsc >&1 +ssh -i /var/www/ros.vados.ru/Mikrotiks/.ssh/id_rsa -o PasswordAuthentication=no -p 2222 mikro_bak@10.30.30.10 export >Config.rsc >&2 +ssh -i /var/www/ros.vados.ru/Mikrotiks/.ssh/id_rsa -o PasswordAuthentication=no -p 2222 mikro_bak@10.30.30.10 export +./ros-diff.sh +clear +./ros-diff.sh +diff --help +./ros-diff.sh +ros-diff.sh +./ros-diff.sh +1 +./ros-diff.sh +/usr/bin/ssh -2 -4 -p 2222 -l mikro_bak 10.30.30.10 -i /var/www/ros.vados.ru/Mikrotiks/.ssh/id_rsa -o PasswordAuthentication=no export > "/var/www/ros.vados.ru/Mikrotiks/backups/MikroNUC/tmp/Config.rsc" +` + +q +./ros-diff.sh +cd .. +cd backups/ +git fetch +git add . +git push +./ros-diff.sh +git init +git add . +git config --global --add safe.directory /var/www/ros.vados.ru +git add . +git commit -m 'Initial commit' +git push +git push origin +git fetch origin +git config --global --add safe.directory /var/www/ros.vados.ru +git init +git config --global --add safe.directory /var/www/ros.vados.ru +git add . +git commit -m 'Initial commit' +git init +git commit -m 'Initial commit' +git add . +git commit -m 'Initial commit' +git init +cat config +git add . +git commit -m 'Initial commit' +git fetch origin +git push origin +git pull +git push +git init +git add . +git commit -m 'Initial commit 1' +git fetch +git push +git init +git add . +git commit -m 'Initial commit' +git push +./ros-diff.sh +./test.sh +./ros-diff.sh +touch ~/.gnupg/gpg-agent.conf +gpg --import vados-dev_public.gpg +gpg --delete vados-dev +gpg --import vados-dev.pub +gpg -k +git config --global user.signingkey ABE4CF61A85CDD6E15F2C02DFCC5E4C7407B8BF7 +git config --global commit.gpgsign true +cd ~ +mc +exit +gpg -k +clear +gpg -k +gpg --delete ABE4CF61A85CDD6E15F2C02DFCC5E4C7407B8BF7 +cd Mikrotiks/ +gpg --import gpg_vados-dev.pub +gpg --import gpg_vados-dev.asc +ls -la +gpg --import gpg_vados-dev.asc +gpg -k +gpg --delete 0x1FD2694762FCE438 +gpg --import gpg_vados-dev.asc +cd ~ +gpg --import gpg_vados-dev.asc +gpg --import gpg_vados-dev.asc +gpg -k +exit +mc +cd ~ +source ~/.bashrc +mc +cd ~/.ssh/ +cat authorized_keys +cd ../ +gpg -k +gpg --delete 0x1FD2694762FCE438 +exit +git fetch +git push +git push main +git push --set-upstream main main +git commit -m 'Mikro_bak Initial Commit.' +git config --global --add safe.directory /var/www/ros.vados.ru +git commit -m 'Mikro_bak Initial Commit.' +mc +exit +./ros-diff.sh +cd ~ +mc +git config --global --add safe.directory /.data/nfs/repos/Mikrotiks/ros.vados.ru.git +git add . +git commit -m 'Fuck You!' +git push +cd ~ +cd .bin/ +./ros-diff.sh diff --git a/.bashrc b/.bashrc new file mode 100644 index 0000000..969098e --- /dev/null +++ b/.bashrc @@ -0,0 +1,127 @@ +# ~/.bashrc: executed by bash(1) for non-login shells. +# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) +# for examples + +# If not running interactively, don't do anything +case $- in + *i*) ;; + *) return;; +esac + +# don't put duplicate lines or lines starting with space in the history. +# See bash(1) for more options +HISTCONTROL=ignoreboth + +# append to the history file, don't overwrite it +shopt -s histappend + +# for setting history length see HISTSIZE and HISTFILESIZE in bash(1) +HISTSIZE=1000 +HISTFILESIZE=2000 + +# check the window size after each command and, if necessary, +# update the values of LINES and COLUMNS. +shopt -s checkwinsize + +# If set, the pattern "**" used in a pathname expansion context will +# match all files and zero or more directories and subdirectories. +#shopt -s globstar + +# make less more friendly for non-text input files, see lesspipe(1) +[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)" + +# set variable identifying the chroot you work in (used in the prompt below) +if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then + debian_chroot=$(cat /etc/debian_chroot) +fi + +# set a fancy prompt (non-color, unless we know we "want" color) +case "$TERM" in + xterm-color|*-256color) color_prompt=yes;; +esac + +# uncomment for a colored prompt, if the terminal has the capability; turned +# off by default to not distract the user: the focus in a terminal window +# should be on the output of commands, not on the prompt +#force_color_prompt=yes + +if [ -n "$force_color_prompt" ]; then + if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then + # We have color support; assume it's compliant with Ecma-48 + # (ISO/IEC-6429). (Lack of such support is extremely rare, and such + # a case would tend to support setf rather than setaf.) + color_prompt=yes + else + color_prompt= + fi +fi + +if [ "$color_prompt" = yes ]; then + PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' +else + PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ' +fi +unset color_prompt force_color_prompt + +# If this is an xterm set the title to user@host:dir +case "$TERM" in +xterm*|rxvt*) + PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1" + ;; +*) + ;; +esac + +# enable color support of ls and also add handy aliases +if [ -x /usr/bin/dircolors ]; then + test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)" + alias ls='ls --color=auto' + #alias dir='dir --color=auto' + #alias vdir='vdir --color=auto' + + alias grep='grep --color=auto' + alias fgrep='fgrep --color=auto' + alias egrep='egrep --color=auto' +fi + +# colored GCC warnings and errors +#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01' + +# some more ls aliases +alias ll='ls -alF' +alias la='ls -A' +alias l='ls -CF' + +# Add an "alert" alias for long running commands. Use like so: +# sleep 10; alert +alias alert='n8otify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"' + +# Alias definitions. +# You may want to put all your additions into a separate file like +# ~/.bash_aliases, instead of adding them here directly. +# See /usr/share/doc/bash-doc/examples in the bash-doc package. + +if [ -f ~/.bash_aliases ]; then + . ~/.bash_aliases +fi + +# enable programmable completion features (you don't need to enable +# this, if it's already enabled in /etc/bash.bashrc and /etc/profile +# sources /etc/bash.bashrc). +if ! shopt -oq posix; then + if [ -f /usr/share/bash-completion/bash_completion ]; then + . /usr/share/bash-completion/bash_completion + elif [ -f /etc/bash_completion ]; then + . /etc/bash_completion + fi +fi + +# Terminal Prompt full paths +export PROMPT_DIRTRIM=5 +export force_color_prompt=yes +#export GIT_SSH=$(which ssh) +#'"c:\WINDOWS\System32\OpenSSH\ssh.exe" -T' +#eval $(ssh-agent) +#ssh-add +GPG_TTY=`tty` +export GPG_TTY diff --git a/.bin/bash-progress-indicator/LICENSE b/.bin/bash-progress-indicator/LICENSE new file mode 100644 index 0000000..830c241 --- /dev/null +++ b/.bin/bash-progress-indicator/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 Leandro Nunes + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/.bin/bash-progress-indicator/README.md b/.bin/bash-progress-indicator/README.md new file mode 100644 index 0000000..8bbeb1a --- /dev/null +++ b/.bin/bash-progress-indicator/README.md @@ -0,0 +1,28 @@ +# bash-progress-indicator +Pure Bash script progress indicators + +## Usage +``` +chmod +x main.sh +./main.sh {progress_indicator_type} +``` + +## progress_indicator_type +#### progress +![type_progress](https://user-images.githubusercontent.com/2450417/37887129-6a7fafec-3096-11e8-8bc0-7768e958119e.gif) + +#### progress_advanced +![type_progress_advanced](https://user-images.githubusercontent.com/2450417/37887130-6ddce736-3096-11e8-9696-25b86becbce3.gif) + +#### spinner1 +![type_spinner1](https://user-images.githubusercontent.com/2450417/37887236-0e8ccf0c-3097-11e8-9c6d-c6f4fc60b712.gif) +#### spinner2 +![type_spinner2](https://user-images.githubusercontent.com/2450417/37887241-12e1c814-3097-11e8-91b2-e43e96ff8cd0.gif) +#### spinner3 +![type_spinner3](https://user-images.githubusercontent.com/2450417/37887242-13012e98-3097-11e8-80cb-ebca61da3109.gif) + +## I wrote an article about this technique [pt-br] +[Medium - [Bash] Construindo indicador de progresso](https://medium.com/meninunes/bash-construindo-indicador-de-progresso-8de94c37683) + +## License +[MIT License](LICENSE) © [Leandro Nunes](https://lnfnunes.com.br) diff --git a/.bin/bash-progress-indicator/main.sh b/.bin/bash-progress-indicator/main.sh new file mode 100755 index 0000000..cf565e7 --- /dev/null +++ b/.bin/bash-progress-indicator/main.sh @@ -0,0 +1,30 @@ +#!/bin/bash -e +# shellcheck disable=SC1091 + +declare -rx STEPS=( + 'pre-install' + 'install' + 'post-install' +) +declare -rx CMDS=( + 'sleep 10' + 'sleep 10' + 'sleep 10' +) + +case $1 in + progress) + . 'progress.sh' + ;; + progress_advanced) + . 'progress_advanced.sh' + ;; + spinner*) + . 'spinner.sh' + ;; + *) + echo "Invalid option $1!" + exit 1 +esac + +start diff --git a/.bin/bash-progress-indicator/progress.sh b/.bin/bash-progress-indicator/progress.sh new file mode 100644 index 0000000..b5ca26e --- /dev/null +++ b/.bin/bash-progress-indicator/progress.sh @@ -0,0 +1,23 @@ +#!/bin/bash -e + +declare -rx BAR_SIZE="##########" +declare -rx CLEAR_LINE="\\033[K" + +start() { + local MAX_STEPS=${#STEPS[@]} + local MAX_BAR_SIZE="${#BAR_SIZE}" + + tput civis -- invisible + + echo -ne "\\r[${BAR_SIZE:0:0}] 0 %$CLEAR_LINE" + for step in "${!STEPS[@]}"; do + ${CMDS[$step]} + + perc=$(((step + 1) * 100 / MAX_STEPS)) + percBar=$((perc * MAX_BAR_SIZE / 100)) + echo -ne "\\r[${BAR_SIZE:0:percBar}] $perc %$CLEAR_LINE" + done + echo "" + + tput cnorm -- normal +} diff --git a/.bin/bash-progress-indicator/progress_advanced.sh b/.bin/bash-progress-indicator/progress_advanced.sh new file mode 100644 index 0000000..ad4f151 --- /dev/null +++ b/.bin/bash-progress-indicator/progress_advanced.sh @@ -0,0 +1,27 @@ +#!/bin/bash -e + +start() { + local MAX_STEPS=${#STEPS[@]} + local BAR_SIZE="##########" + local MAX_BAR_SIZE="${#BAR_SIZE}" + local CLEAR_LINE="\\033[K" + + tput civis -- invisible + + for step in "${!STEPS[@]}"; do + perc=$((step * 100 / MAX_STEPS)) + percBar=$((perc * MAX_BAR_SIZE / 100)) + echo -ne "\\r- ${STEPS[step]} [ ]$CLEAR_LINE\\n" + echo -ne "\\r[${BAR_SIZE:0:percBar}] $perc %$CLEAR_LINE" + + ${CMDS[$step]} + + perc=$(((step + 1) * 100 / MAX_STEPS)) + percBar=$((perc * MAX_BAR_SIZE / 100)) + echo -ne "\\r\\033[1A- ${STEPS[step]} [✔]$CLEAR_LINE\\n" + echo -ne "\\r[${BAR_SIZE:0:percBar}] $perc %$CLEAR_LINE" + done + echo "" + + tput cnorm -- normal +} diff --git a/.bin/bash-progress-indicator/spinner.sh b/.bin/bash-progress-indicator/spinner.sh new file mode 100644 index 0000000..b68cf89 --- /dev/null +++ b/.bin/bash-progress-indicator/spinner.sh @@ -0,0 +1,82 @@ +#!/bin/bash -e + +declare -x FRAME +declare -x FRAME_INTERVAL + +set_spinner() { + case $1 in + spinner1) + FRAME=("⠋" "⠙" "⠹" "⠸" "⠼" "⠴" "⠦" "⠧" "⠇" "⠏") + FRAME_INTERVAL=0.1 + ;; + spinner2) + FRAME=("-" "\\" "|" "/") + FRAME_INTERVAL=0.25 + ;; + spinner3) + FRAME=("◐" "◓" "◑" "◒") + FRAME_INTERVAL=0.5 + ;; + spinner4) + FRAME=(":(" ":|" ":)" ":D") + FRAME_INTERVAL=0.5 + ;; + spinner5) + FRAME=("◇" "◈" "◆") + FRAME_INTERVAL=0.5 + ;; + spinner6) + FRAME=("⚬" "⚭" "⚮" "⚯") + FRAME_INTERVAL=0.25 + ;; + spinner7) + FRAME=("░" "▒" "▓" "█" "▓" "▒") + FRAME_INTERVAL=0.25 + ;; + spinner8) + FRAME=("☉" "◎" "◉" "●" "◉") + FRAME_INTERVAL=0.1 + ;; + spinner9) + FRAME=("❤" "♥" "♡") + FRAME_INTERVAL=0.15 + ;; + spinner10) + FRAME=("✧" "☆" "★" "✪" "◌" "✲") + FRAME_INTERVAL=0.1 + ;; + spinner11) + FRAME=("●" "◕" "☯" "◔" "◕") + FRAME_INTERVAL=0.25 + ;; + *) + echo "No spinner is defined for $1" + exit 1 + esac +} + +start() { + local step=0 + +# tput civis -- invisible + + while [ "$step" -lt "${#CMDS[@]}" ]; do + ${CMDS[$step]} & pid=$! + + while ps -p $pid &>/dev/null; do + echo -ne "\\r[ ] ${STEPS[$step]} ..." + + for k in "${!FRAME[@]}"; do + echo -ne "\\r[ ${FRAME[k]} ]" + sleep $FRAME_INTERVAL + done + done + + echo -ne "\\r[ ✔ ] ${STEPS[$step]}\\n" + step=$((step + 1)) + done + +# tput cnorm -- normal +} + +set_spinner "$1" diff --git a/.bin/logs b/.bin/logs new file mode 120000 index 0000000..927bfe5 --- /dev/null +++ b/.bin/logs @@ -0,0 +1 @@ +/var/log/Mikrotiks \ No newline at end of file diff --git a/.bin/ros-conf/.ssh/known_hosts b/.bin/ros-conf/.ssh/known_hosts new file mode 100644 index 0000000..12bcc77 --- /dev/null +++ b/.bin/ros-conf/.ssh/known_hosts @@ -0,0 +1 @@ +[10.30.30.10]:2222 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDHv+zKADwFHB8DebzFchw4/RkJQRAjDWS7k1DdzCYzLfLsWqXdSc24HDBSLtdlEl9pPY7VevZm+VH1vHU06Ws1MWMC1oNr3UotAeb3qckUGLEvNqsDO5JOVVbHZVkbnwqnSfBIgAPGUNTHOImqV48D/Hi7Oey10e/KvoEKIS+RSaAZ4OkI3IiSG/9fnwVPYrvdjNAkgFUumNFvN8q512MV5W1RZ5ajsZwuBucxf5Bhny/c5pNHCKHrnQdCnn7RKyhZHPRJaPNmFhO3/A5j/LBDt04FGF9LG+gCBCNkUnQpAUiDzxgyvY+wJetXahUCyJ9hLoGTGM4AyxsHfrhJkMs9 diff --git a/.bin/ros-conf/.ssh/mikro_bak_rsa b/.bin/ros-conf/.ssh/mikro_bak_rsa new file mode 100644 index 0000000..1b5d673 --- /dev/null +++ b/.bin/ros-conf/.ssh/mikro_bak_rsa @@ -0,0 +1,27 @@ +-----BEGIN OPENSSH PRIVATE KEY----- +b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABFwAAAAdzc2gtcn +NhAAAAAwEAAQAAAQEAu+2q6J8oIGRByMJOm3GTN9mixrKqrm/eW1Izv69Lt2oUTeCjfmsq +Pk8CEiRjkyCaL/agXuIoDghGFFQGexanyVXJNYlSFgGa1WuCnzJBElpDQo5sHyKB2tvcFc +jQv1SLJ3ci11GDIIhLAqlQ4veNN+CFkjXWgLocTTccPnC6+rgnMLkJK/owejWEjLFl/ti5 +0dqTPny+OT9Tq9ei9cY1fqJU4r56Gq5G5GYj9CzKfJZX5F5wkZ06nCCJGRWTXgrctoEFB4 +r+vn2rl1PyaqCz2AXWmWyjHcGZ2gp8Xw5beezJ8e5N4HBOZk/nsF8b1nMNpA20iN9d3ugI +1X5SgjYdgQAAA8icBUzNnAVMzQAAAAdzc2gtcnNhAAABAQC77aronyggZEHIwk6bcZM32a +LGsqqub95bUjO/r0u3ahRN4KN+ayo+TwISJGOTIJov9qBe4igOCEYUVAZ7FqfJVck1iVIW +AZrVa4KfMkESWkNCjmwfIoHa29wVyNC/VIsndyLXUYMgiEsCqVDi94034IWSNdaAuhxNNx +w+cLr6uCcwuQkr+jB6NYSMsWX+2LnR2pM+fL45P1Or16L1xjV+olTivnoarkbkZiP0LMp8 +llfkXnCRnTqcIIkZFZNeCty2gQUHiv6+fauXU/JqoLPYBdaZbKMdwZnaCnxfDlt57Mnx7k +3gcE5mT+ewXxvWcw2kDbSI313e6AjVflKCNh2BAAAAAwEAAQAAAQAK2Ujj2PGbZ8OXGrB9 +r2wiQ0FvBbgYuIM2SQ6NDZ+Usl5YXel8+M7IKLjOjKSQRRzhkUk8xlgtnIipz8KirxzMi1 +PsRUXPLhSJfDAJj1XLq25KlKeP5zwRLbQM2zpBxq2p1Oor/Uammsz0awstBGwgl6jeV0FP +eRmn03tL7NIT0HL3BSRP75ReWfdwF8L5Ja2JP1Mw1nBpbpEA4fAsGaHsX3WPaAVMx1ThUU +vV1Qf+7aoDaX0hjdwNErFOwYUD37E7CvMMuwztGTR0SgC5UPkgW+OHiUtTWhQl0hHKy96t +9J8l4nwmpNTcqdryKjffThroYKjv0YA71K1gHI6fQRxJAAAAgQC1tE1LnBIYtGdhkVHv1e +9rOjdHm4XRgzmWDGYGFWndQfDZ+Tezj3lrookPf4Yp5GM5lB7OE+TsUbRPQkYlCTAURMGI +rYagsCinmICMZj3IeaHmVbUmvNrd2NM+CvceMAsJBcNIbuWKyFv77wrsrHiUF+8hd4BWDk +vVnATBUFTPHgAAAIEA71BXm3WQFevdMJaDT0tcTGG2Czf9RoR6gOLOiV+63Hd2a4jcQ1CG +YitRWpvU0pE1151EwWiEeaT3gpA7wstMB26F9z6Co+wBcjpm0Aw+J/N+g8cJgED90ZQEQk +5W0BTbn2VmL2av19BuLRW0IDE68BMnFuFLZO0kQvvIdl/EJHcAAACBAMkIHYmyuQafPRiA +odBywQnz5XAPlxDdHw8uEEqSuCnAkiK3vbedf8qD4mkjmKsCZ/iDfcq+EtNxUDNSNiuxDo +NbRo/cBGiGjlfv0a8RcpNhjOEu5cMMwdTSKrO2vsCi9dhS828C0fRL5dC07vYhDEyVTke7 +iD2DDEYAA3HeKqPHAAAAEG1pa3JvX2Jha0BhbXN0ZXIBAg== +-----END OPENSSH PRIVATE KEY----- diff --git a/.bin/ros-conf/.ssh/mikro_bak_rsa.pub b/.bin/ros-conf/.ssh/mikro_bak_rsa.pub new file mode 100644 index 0000000..c022473 --- /dev/null +++ b/.bin/ros-conf/.ssh/mikro_bak_rsa.pub @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC77aronyggZEHIwk6bcZM32aLGsqqub95bUjO/r0u3ahRN4KN+ayo+TwISJGOTIJov9qBe4igOCEYUVAZ7FqfJVck1iVIWAZrVa4KfMkESWkNCjmwfIoHa29wVyNC/VIsndyLXUYMgiEsCqVDi94034IWSNdaAuhxNNxw+cLr6uCcwuQkr+jB6NYSMsWX+2LnR2pM+fL45P1Or16L1xjV+olTivnoarkbkZiP0LMp8llfkXnCRnTqcIIkZFZNeCty2gQUHiv6+fauXU/JqoLPYBdaZbKMdwZnaCnxfDlt57Mnx7k3gcE5mT+ewXxvWcw2kDbSI313e6AjVflKCNh2B rsa-key-20260204 \ No newline at end of file diff --git a/.bin/ros-conf/README.md b/.bin/ros-conf/README.md new file mode 100644 index 0000000..973a2a7 --- /dev/null +++ b/.bin/ros-conf/README.md @@ -0,0 +1,41 @@ +# RouterOS Configuration Scripts + +Personal RouterOS configuration scripts for home network management. + +## Overview + +This repository contains RouterOS scripts to configure and diagnose a MikroTik router. Configuration scripts set up router modes (routing, bridging, NAT, DHCP). Check scripts display router settings and diagnostics. + +## Quick Start + +### Running Scripts + +Run scripts on the router using forward slashes: + +```routeros +/system script run config/firewall +/system script run check/nat +``` + +## Network Configuration + +The `combo1` port is renamed to `combo1-WAN` for routing mode or `combo1-bridge` for switching mode. The `bridge` interface is used for the internal network. + +The WAN interface uses `192.168.200.2/24` with gateway `192.168.200.1`. The bridge interface uses `192.168.88.1/24` as the gateway for the internal network. DHCP serves addresses from `192.168.88.100-192.168.88.199`. + +## Hardware + +These scripts are tested on CRS106, a MikroTik switch/router. + +## Repository Structure + +```text +routeros-config/ +├── scripts/ +│ ├── config/ # Configuration scripts +│ ├── check/ # Diagnostic scripts +│ └── README.md # Format and syntax guidelines +└── README.md # This file +``` + +For format and syntax guidelines, see [scripts/README.md](scripts/README.md). diff --git a/.bin/ros-conf/setup-ssh-keys.sh b/.bin/ros-conf/setup-ssh-keys.sh new file mode 100755 index 0000000..6653373 --- /dev/null +++ b/.bin/ros-conf/setup-ssh-keys.sh @@ -0,0 +1,28 @@ +#!/bin/bash +# Setup SSH keys for RouterOS router + +ROUTER_IP="10.30.30.81" +ROUTER_USER="mikro_bak" +KEY_NAME=$ROUTER_USER"_rsa@"$ROUTER_IP +KEY_PATH="$HOME/.ssh/$KEY_NAME" + +# Check/create .ssh directory +if [ ! -d "$HOME/.ssh" ]; then + mkdir -p "$HOME/.ssh" + chmod 700 "$HOME/.ssh" +fi + +# Generate SSH key if it doesn't exist +if [ ! -f "$KEY_PATH" ]; then + ssh-keygen -t rsa -b 2048 -f "$KEY_PATH" -N "" -C "$ROUTER_USER@$ROUTER_IP" +fi + +# Upload and import key on router +scp "$KEY_PATH.pub" "$ROUTER_USER@$ROUTER_IP -p 2222":/ +ssh "$ROUTER_USER@$ROUTER_IP -p 2222" "/user ssh-keys import public-key-file=$KEY_NAME.pub user=$ROUTER_USER" + +# Verify key works +if ! ssh -i "$KEY_PATH" -o PasswordAuthentication=no "$ROUTER_USER@$ROUTER_IP -p 2222" "/system identity print" >/dev/null 2>&1; then + echo "Error: SSH key authentication failed" + exit 1 +fi diff --git a/.bin/ros-conf/sync-script.sh b/.bin/ros-conf/sync-script.sh new file mode 100755 index 0000000..ca4c1de --- /dev/null +++ b/.bin/ros-conf/sync-script.sh @@ -0,0 +1,139 @@ +#!/bin/bash +# Upload all scripts and sync to RouterOS + +ROUTER_IP="10.30.30.10" +ROUTER_USER="mikro_bak" +SSH_KEY="$HOME/.ssh/mikro_bak_rsa" +RSC_FILE="import_scripts.rsc" + +# Require router-specific SSH key +if [ ! -f "$SSH_KEY" ]; then + echo "Error: SSH key not found at $SSH_KEY" + echo "Run ./setup-ssh-keys.sh to generate the key" + exit 1 +fi + +SSH_OPTS="-i $SSH_KEY -o PasswordAuthentication=no" + +# Generate .rsc import file +echo "Generating import file..." + +# Get git commit hash and dirty status +GIT_HASH=$(git rev-parse --short HEAD 2>/dev/null || echo "unknown") +if [ -z "$(git status --porcelain 2>/dev/null)" ]; then + GIT_STATUS="$GIT_HASH" +else + GIT_STATUS="$GIT_HASH-dirty" +fi + +# Get current date with timezone offset +GEN_DATE=$(date '+%Y-%m-%d %H:%M:%S %z') + +# Write header +cat > "$RSC_FILE" << RSC_HEADER +# RouterOS script import file +# Generated by sync-script.sh +# Date: $GEN_DATE +# Git: $GIT_STATUS + +RSC_HEADER + +# Write header for creating scripts section +printf ':put "=== Creating scripts ==="\n' >> "$RSC_FILE" +printf '\n' >> "$RSC_FILE" + +# Create function for script creation +printf ':global createScriptIfMissing do={\n' >> "$RSC_FILE" +printf ' :if ([/system script print count-only where name=$scriptName] = 0) do={\n' >> "$RSC_FILE" +printf ' :put ("Creating script: " . $scriptName);\n' >> "$RSC_FILE" +printf ' /system script add name=$scriptName\n' >> "$RSC_FILE" +printf ' }\n' >> "$RSC_FILE" +printf '}\n\n' >> "$RSC_FILE" + +# Write all add commands first +for SCRIPT_FILE in scripts/config/*.rsc scripts/check/*.rsc; do + if [ ! -f "$SCRIPT_FILE" ]; then + continue + fi + + SCRIPT_NAME=$(sed -n '1p' "$SCRIPT_FILE" | sed 's/^# //') + POLICY=$(sed -n '3p' "$SCRIPT_FILE" | sed -n 's/^# policy=\(.*\)/\1/p') + + if [ -z "$POLICY" ]; then + echo "Error: Missing policy in $SCRIPT_FILE (line 3 should be '# policy=read,write')" + exit 1 + fi + + # Call function with script name + printf '$createScriptIfMissing scriptName="%s"\n' "$SCRIPT_NAME" >> "$RSC_FILE" +done + +# Empty line between sections +printf '\n' >> "$RSC_FILE" +printf ':put ""\n' >> "$RSC_FILE" +printf ':put "=== Updating scripts ==="\n' >> "$RSC_FILE" +printf '\n' >> "$RSC_FILE" + +# Write all set commands +for SCRIPT_FILE in scripts/config/*.rsc scripts/check/*.rsc; do + if [ ! -f "$SCRIPT_FILE" ]; then + continue + fi + + SCRIPT_NAME=$(sed -n '1p' "$SCRIPT_FILE" | sed 's/^# //') + COMMENT=$(sed -n '2p' "$SCRIPT_FILE" | sed 's/^# //') + POLICY=$(sed -n '3p' "$SCRIPT_FILE" | sed -n 's/^# policy=\(.*\)/\1/p') + + # Escape comment for RouterOS (escape quotes) + ESCAPED_COMMENT=$(echo "$COMMENT" | sed 's/"/\\"/g') + + # Read script content and escape for RouterOS .rsc format + # Loop through file line by line, escape special chars, join with \n + SCRIPT_CONTENT="" + while IFS= read -r line || [ -n "$line" ]; do + # Escape backslashes, dollar signs, and quotes + line=$(echo "$line" | sed 's/\\/\\\\/g' | sed 's/\$/\\$/g' | sed 's/"/\\"/g') + if [ -z "$SCRIPT_CONTENT" ]; then + SCRIPT_CONTENT="$line" + else + SCRIPT_CONTENT="$SCRIPT_CONTENT\\n$line" + fi + done < "$SCRIPT_FILE" + + # Write set command directly to file + printf ':put "Updating script: %s"; /system script set "%s" source="' "$SCRIPT_NAME" "$SCRIPT_NAME" >> "$RSC_FILE" + echo "$SCRIPT_CONTENT" | sed 's/\\n/\\n\\\n /g' >> "$RSC_FILE" + printf '" comment="%s" policy=%s\n\n' "$ESCAPED_COMMENT" "$POLICY" >> "$RSC_FILE" +done + +# Delete the helper function +printf '\n:set createScriptIfMissing;\n' >> "$RSC_FILE" + +# Print all scripts (excluding source/contents) +printf ':put ""\n:put "=== All system scripts ==="\n/system script print proplist=name,comment,owner,policy,dont-require-permissions,run-count,last-started,invalid\n' >> "$RSC_FILE" + +# Show generated .rsc file and ask for confirmation +echo "" +echo "=== Generated import file ($RSC_FILE) ===" +head -20 "$RSC_FILE" +echo "..." +echo "" +read -p "Upload and import this file? (y/N): " -n 1 -r +echo +if [[ ! $REPLY =~ ^[Yy]$ ]]; then + echo "Aborted" + rm -f "$RSC_FILE" + exit 1 +fi + +# Upload .rsc file +echo "Uploading import file..." +scp $SSH_OPTS "$RSC_FILE" "$ROUTER_USER@$ROUTER_IP":/ + +# Import on router +echo "Importing scripts..." +ssh $SSH_OPTS "$ROUTER_USER@$ROUTER_IP" "/import file-name=$RSC_FILE" + +# Cleanup +rm -f "$RSC_FILE" +echo "Done!" diff --git a/.bin/ros-diff.sh b/.bin/ros-diff.sh new file mode 100755 index 0000000..a6b9f63 --- /dev/null +++ b/.bin/ros-diff.sh @@ -0,0 +1,665 @@ +#!/bin/bash +#set +e -u +#o pipefail +# Add to cron +# crontab -e +#*/20 * * * * /var/www/ros.vados.ru/Mikrotiks/.bin/ros-diff.sh +#set +eo pipefail +#set -x +#GEN_DATE=$(date '+%Y-%m-%d %H:%M:%S %z') +#GEN_DATE_TIME=$(date '+%d.%m.%Y %T %Z') +# +#ASK_NEXT=true +#ask_forNext() { +# local ask $1 +# local item $2 +# echo -n $ask +#read item +#case "$item" in +# y|Y) echo "Ввели «y», продолжаем..." +# ;; +# n|N) echo "Ввели «n», завершаем..." +# exit 0 +# ;; +# *) echo "Ничего не ввели. Выполняем действие по умолчанию..." +# ;; +#esac +#} +#${CMD_SSH} ${SSH_OPTS} ${SSHuser}@${SSHhost} system script run MkTmpfs; +# +#### Utils ############################################################################################# +CMD_FIND=$(which find) +CMD_MV=$(which mv) +CMD_GZ=$(which gzip) +CMD_CHO=$(which chown) +CMD_CHM=$(which chmod) +CMD_MKD=$(which mkdir)" -p " +CMD_RM=$(which rm) +CMD_DATE=$(date +%Y%m%d_%H%M) # date in format YYYYMMDD_HHmm +CMD_SSL=$(which openssl) +CMD_SSH=$(which ssh) +CMD_SCP=$(which scp) +CMD_SFTP=$(which sftp) + +ScriptName=$(basename -- "$0") +# HomeDir=$HOME +HomeDir="/var/www/ros.vados.ru/Mikrotiks" +HostsFile=${HomeDir}"/.config/.mikrotiks" +BinDir=${HomeDir}"/.bin" +GitDir=${HomeDir}"/backups" + +# Set SSH defaults: +DEFAULT_SSH_PORT="22" +DEFAULT_SSH_USER="admin" +DEFAULT_CONNECT_ATTEMPTS=5 +DEFAULT_CONNECT_TIMEOUT=5 +DEFAULT_SSH_KEY=${HomeDir}"/.ssh/id_rsa" +# Set default diff args: +DEFAULT_DIFF_ARGS=("-I \"RouterOS\"") +# +# Set debug and log options: +DEBUG_OUT=true +SAVE_LOG=true +# Set default LogFile: +DEFAULT_LOG="/var/log/Mikrotiks/ros-diff.log" +# +# Default backup variables: +DEFAULT_BIN_CRYPT=true +DEFAULT_BINPWD="BinPwd123" +DEFAULT_EXP_CRYPT=false +DEFAULT_EXPPWD="ExpPwd321" + +# Handy tput commands: +#tput bold - Bold effect #'\033[1m' +#tput rev - Display inverse colors +#tput sgr0 - Reset everything #'\033[0m' +#tput setaf {CODE}- Set foreground color, see color {CODE} below +#tput setab {CODE}- Set background color, see color {CODE} below +# Colors: +#0 Black +#1 Red #'\033[1;31m' +#2 Green #'\033[1;32m' +#3 Yellow #'\033[1;33m' +#4 Blue # '\033[1;34m' +#5 Magenta # '\033[1;35m' +#6 Cyan # '\033[1;36m' +#7 White # '\033[1;37m' +if [ -t 1 ] && $DEBUG_OUT; then + reset=$(tput sgr0) + bold=$(tput bold) + red=$(tput setaf 1) + green=$(tput setaf 2) + yellow=$(tput setaf 3) + blue=$(tput setaf 4) + magenta=$(tput setaf 5) + cyan=$(tput setaf 6) + white=$(tput setaf 7) + toend=$(tput hpa $(tput cols))$(tput cub 6) +else + reset='' bold='' red='' green='' yellow='' blue='' magenta='' cyan='' white='' toend='' +fi + +info() { + echo -e "\n${blue}ℹ $*${reset}" +} +success() { + echo -e "\n${green}✅ $*${reset}" +} +error() { + echo -e "\n${red}❌ $*${reset}" >&2 +} +warning() { + echo -e "${yellow}⚠ $*${reset}" >&2 +} +section() { + echo -e "\n${magenta}................[$(tput rev) $* ${reset}${magenta}]................${reset}\n" +} + +FRAME=("⠋" "⠙" "⠹" "⠸" "⠼" "⠴" "⠦" "⠧" "⠇" "⠏") +FRAME_INTERVAL=0.1 + +start() { + local step=0 + while [ "$step" -lt "${#CMDS[@]}" ]; do + ${CMDS[$step]} & pid=$! + while ps -p $pid &>/dev/null; do + echo -ne "\\r[ ] ${STEPS[$step]} ..." + for k in "${!FRAME[@]}"; do + echo -ne "\\r[ ${FRAME[k]} ]" + sleep $FRAME_INTERVAL + done + done + echo -ne "\\r[ ✔ ] ${STEPS[$step]}\\n" + step=$((step + 1)) + done +} +#echo '⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏' +spinner() +{ + local pid=$! + local delay=0.75 + local spinstr='|/-\' + #'⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏' + while [ "$(ps a | awk '{print $1}' | grep $pid)" ]; do + local temp=${spinstr#?} + printf " [%c] " "${spinstr}" + local spinstr=$temp${spinstr%"$temp"} + sleep $delay + printf "\b\b\b\b\b\b" + done + printf " \b\b\b\b" +} + +save_log() { + local log="${DEFAULT_LOG}" + if [ -n "${LogFile}" ]; then + log="${LogFile}" + fi + if ${SAVE_LOG}; then + echo "$(date '+%b %d %T') - $*" >> ${log} + return 0 + else + return 1 + fi +} + +get_connections_str() { + local opts + local log_msg + local host + local ssh_str + local scp_str + +# Require router-specific SSH key + if [ -n "$DEFAULT_SSH_KEY" ]; then + opts=("-i ${DEFAULT_SSH_KEY}" "-o PasswordAuthentication=no") + else + log_msg="- Error: SSH key not found at $DEFAULT_SSH_KEY\nRun ./setup-ssh-keys.sh to generate the key" + if [ -t 1 ] && ${DEBUG_OUT}; then + error "${RouterName} ${log_msg}" + fi + save_log "${log_msg}" + exit 1 + fi +# if [ -n "$DEFAULT_CONNECT_ATTEMPTS" ]; then +# opts+=("-o ConnectionAttempts=${DEFAULT_CONNECT_ATTEMPTS}") +# fi +# if [ -n "$DEFAULT_CONNECT_TIMEOUT" ]; then +# opts+=("-o ConnectTimeout=${DEFAULT_CONNECT_TIMEOUT}") +# fi + #opts+=("-o PreferredAuthentications=publickey" "-o StrictHostKeyChecking=no" "-o UserKnownHostsFile=/dev/null" \ + #"-o GlobalKnownHostsFile=/dev/null" "-o CheckHostIP=no") +SSH_OPTS="${opts[*]}" + +# Require router host IP + if [ -n "${SSHhost}" ]; then + host="${SSHhost}" + else + log_msg="- Error! SSH Host not found. Exit 1." + if [ -t 1 ] && ${DEBUG_OUT}; then + error "${RouterName} ${log_msg}" + fi + save_log "${log_msg}" + exit 1 + fi + + ssh_str=("$CMD_SSH" "-2" "-4") + scp_str=("${CMD_SCP}" "-2" "-4" "-B ${SSH_OPTS}") + + if [ -n "${SSHport}" ]; then + ssh_str+=("-p ${SSHport}") + scp_str+=("-P ${SSHport}") + else + ssh_str+=("-p ${DEFAULT_SSH_PORT}") + scp_str+=("-P ${DEFAULT_SSH_PORT}") + fi + + if [ -n "${SSHuser}" ]; then + ssh_str+=("-l ${SSHuser}") + scp_str+=("${SSHuser}@${host}") + else + ssh_str+=("-l ${DEFAULT_SSH_USER}") + scp_str+=("${DEFAULT_SSH_USER}@${host}") + fi + + ssh_str+=("${host}") + +ssh_str+=("${SSH_OPTS}") +SSH_STR="${ssh_str[*]}" +SCP_STR="${scp_str[*]}" +#SFTP_STR="${sftp_str[*]}" +#SFTP_OPTS="-i ${DEFAULT_SSH_KEY} -o PasswordAuthentication=no -oPort=${SSHport}" +} + +#>/dev/null 2>&1 +############################### +# Backup listing +############################### +# Get Names Addresses and Ports in $HostsFile +#declare -rx STEPS=( +# 'download' +# 'check' +# 'backup' +#) +#IFS=$'\n' +run_ssh_cmd() { + local run="${1}" + warning "${run}" + if ${SSH_STR} ${run}; then + return 0 + else + return 1 + fi +} + +download_config() { + local conf="${1}" + local log_msg + + if ${SSH_STR} export >${conf}; then + log_msg="- Config download success!" + if [ -t 1 ] && $DEBUG_OUT; then + success "${RouterName} ${log_msg}" + fi + save_log "${log_msg}" + return 0 + else + log_msg="- Config download ${conf} error! Exit Error 1." + if [ -t 1 ] && $DEBUG_OUT; then + error "${RouterName} ${log_msg}" + fi + save_log "${log_msg}" + exit 1 + fi +} + +compare_config() { + local config_file="${1}" + local precedent_file="${2}" + local diff_file="${3}" + local diff_args=${DEFAULT_DIFF_ARGS} + local log_msg + + diff ${diff_args} ${config_file} ${precedent_file} >${diff_file} + if [ "$?" -ne "0" ]; then + log_msg="- There is a difference! Create backup..." + if [ -t 1 ] && $DEBUG_OUT; then + section " CREATE BACKUP " + sleep 1 + info "${RouterName} ${log_msg}" + fi + save_log "${log_msg}" + return 0 + else + log_msg="- The files are identical. No backup is required." + if [ -t 1 ] && $DEBUG_OUT; then + section " START CLEANUP " + sleep 1 + info "${RouterName} ${log_msg}" + fi + save_log "${log_msg}" + log_msg="- Remove ${diff_file} file." + if [ -t 1 ] && $DEBUG_OUT; then + info "${RouterName} ${log_msg}" + fi + save_log "${log_msg}" + ${CMD_RM} -f ${diff_file} + log_msg="- Remove ${config_file} file." + if [ -t 1 ] && $DEBUG_OUT; then + info "${RouterName} ${log_msg}" + fi + save_log "${log_msg}" + ${CMD_RM} -f ${config_file} + + return 1 + fi +} + +check_directory() { + local chk_dir="${1}" + local log_msg + + if [[ -d ${chk_dir} && -r ${chk_dir} ]] + then + return 0 + else + if $CMD_MKD ${chk_dir}; then + log_msg="- Direcory ${chk_dir} created." + if [ -t 1 ] && $DEBUG_OUT; then + success "${RouterName} ${log_msg}" + fi + save_log "${log_msg}" + return 0 + else + log_msg="- Error create direcory ${chk_dir}! Exit 1." + if [ -t 1 ] && $DEBUG_OUT; then + error "${RouterName} ${log_msg}" + fi + save_log "${log_msg}" + exit 1 + fi +# This script must be run by a special user in his home directory. +# Therefore, the following lines are not needed. +# $CMD_CHO root:root $dir +# $CMD_CHM 755 $ST_FULL + fi +} + +#${SSH_STR} /system script environment get [find name=BackupPassword] value; +#exit 0 +backup_binary() { + local bin_name="${1}" + local crypt="${DEFAULT_BIN_CRYPT}" + local bin_pass="${DEFAULT_BINPWD}" + local log_msg + local crypt_str + #${SSH_STR} :put [/system script environment get [find name=BackupPassword] value]; + + if ${SSH_STR} /system/script environment find where name=BackupEncrypt && ${SSH_STR} /system/script environment find where name=BackupPassword; then + + bin_pass=${SSH_STR} /system/script/environment/get ([ /system/script/environment find name='BackupPassword' ]->value); + crypt_str="dont-encrypt=no password=${bin_pass}" + warning "${crypt_str}" + else + if [ -n ${crypt} ] && [ -n {passwd} ]; then + crypt_str="dont-encrypt=no password=${passwd}" + else + crypt_str="dont-encrypt=yes" + fi + + fi + # if [ -n $]; then + +# local BKPSTR="system backup save name=${bin_name} dont-encrypt=no password=$BKP_BINPWD" +# T_BKPCLN="file remove [find name=$TGT_BKPNAME_BIN]" +} + +readarray -t lines < $HostsFile +#declare -r STEPS=($lines) +#declare -r MAX_STEPS=${#lines[@]} +#declare -r BAR_SIZE="##########" +#declare -r MAX_BAR_SIZE=${#BAR_SIZE} + +for HR in "${lines[@]}"; do +# perc=$(((HR + 1) * 100 / MAX_STEPS)) +# percBar=$((perc * MAX_BAR_SIZE / 100)) +# declare -rx CMDS=( +# "${CMD_SSH} ${SSH_OPTS} ${SSHuser}@${SSHhost} export >$current_config" +# 'sleep 10' +# 'sleep 1' +#) +while IFS=$' ' read -a HR ; do +#|| [ -n "$HR" ]; do +[[ -z ${HR[0]} ]] && continue + +DStamp=$(date '+%Y%m%d') +DTStamp=$(date '+%Y%m%d%H%M%S') + +RouterName=${HR[0]} +SSHhost=${HR[1]} +SSHport=${HR[2]} +SSHuser=${HR[3]} +SSHpassword=${HR[4]} + +get_connections_str +backup_binary "BinaryTest.backup" + +exit 0 +#warning "SSH_STR = ${SSH_STR}" +#warning "SCP_STR = ${SCP_STR}" +#exit 0 + +BaseDir=${HomeDir}"/backups/${RouterName}/" +TempDir=${BaseDir}"tmp/" +HistoryDir=${BaseDir}"history/" +LogFile="/var/log/Mikrotiks/${RouterName}.log" +log_msg="undefined" + +log_msg="- Start backup script ${ScriptName} for ${RouterName}" +if [ -t 1 ] && $DEBUG_OUT; then + info "${RouterName} ${log_msg}" + echo +fi +save_log "${log_msg}" + +log_msg="- Check and creatre services directories for ${RouterName} if not exsist..." +if [ -t 1 ] && $DEBUG_OUT; then + section " CHECK DIRS " + info "${RouterName} ${log_msg}" +fi +save_log "${log_msg}" + +CheckDirs=("${BaseDir}" "${TempDir}" "${HistoryDir}") +for dir in "${CheckDirs[@]}"; do +(check_directory "${dir[@]}") +done + +log_msg="All Directories for ${RouterName} was created sucessfully!" +if [ -t 1 ] && $DEBUG_OUT; then + success "${log_msg}" +fi +save_log "- ${log_msg}" + +log_msg="Set variables for ${RouterName}..." +if [ -t 1 ] && $DEBUG_OUT; then + info "${log_msg}" +fi +save_log "- ${log_msg}" + +precedent_config=${BaseDir}"Precedent-Config.rsc" +current_config=${TempDir}"Config.rsc" +diff_config=${TempDir}"Diff-Config.rsc" +current_backup="Binary.backup" + +log_msg="Set variables for ${RouterName} success!" +if [ -t 1 ] && $DEBUG_OUT; then + success "${log_msg}" +fi +save_log "- ${log_msg}" + +section " CHECK CONFIG " +log_msg="- Download ${current_config} file to Temp Directory..." +if [ -t 1 ] && $DEBUG_OUT; then + info "${RouterName} ${log_msg}" +fi +save_log "- ${log_msg}" + +download_config "${current_config}" + +log_msg="- Comparing with the previous config..." +if [ -t 1 ] && $DEBUG_OUT; then + info "${RouterName} ${log_msg}" +fi +save_log "- ${log_msg}" + +if compare_config ${current_config} ${precedent_config} ${diff_config} ${RouterName} ${LogFile}; then + BackupDir=${BaseDir}"${DStamp}/" + ${CMD_MKD} ${BackupDir} + + save_config=${BackupDir}"${DTStamp}-Config.rsc" + save_backup=${BackupDir}"${DTStamp}-Binary.backup" + + log_msg="- Copy ${current_config} file to ${BackupDir} directory..." + if [ -t 1 ] && $DEBUG_OUT; then + info "${RouterName} ${log_msg}" + fi + save_log "- ${log_msg}" + + cp ${current_config} ${save_config} + + ${CMD_RM} -f ${precedent_config} + + ${CMD_MV} -f ${current_config} ${precedent_config} + + log_msg="- Copy configuration to ${BackupDir}/${save_config} and ${precedent_config} success." + if [ -t 1 ] && $DEBUG_OUT; then + success "${RouterName} ${log_msg}" + fi + save_log "- ${log_msg}" + + log_msg="Create ${current_backup} file on ${RouterName}..." + if [ -t 1 ] && $DEBUG_OUT; then + info "${log_msg}" + fi + save_log "- ${log_msg}" +# if [ $? -eq 0 ]; then + if ${SSH_STR} system backup save name=${current_backup}; then + log_msg="Create binary backup ${current_backup} on ${RouterName} success." + if [ -t 1 ] && $DEBUG_OUT; then + success "${log_msg}" + fi + save_log "- ${log_msg}" + + log_msg="- Start download ${current_backup} file to ${BackupDir}..." + if [ -t 1 ] && $DEBUG_OUT; then + info "${RouterName} ${log_msg}" + fi + save_log "- ${log_msg}" + +# if ${SFTP_STR}:$current_backup; then + # ${CMD_SFTP} ${SFTP_OPTS} ${SSHuser}@${SSHhost}:$current_backup + if ${SCP_STR}:/${current_backup} ${save_backup}; then + sleep 2 + log_msg="- Binary Backup download complete!" + if [ -t 1 ] && $DEBUG_OUT; then + success "${RouterName} ${log_msg}" + fi + save_log "${log_msg}" + else + log_msg="- Error! Save binary backup on ${RoutrName} failed!" + if [ -t 1 ] && $DEBUG_OUT; then + error "${log_msg}" + fi + save_log "${log_msg}" + fi + else + log_msg="Error create binary backup ${current_backup} on ${RouterName}!" + if [ -t 1 ] && $DEBUG_OUT; then + error "${log_msg}" + fi + save_log "- ${log_msg}" + fi + + log_msg="- Remove ${current_backup} file on ${RouterName}." + if [ -t 1 ] && $DEBUG_OUT; then + section "CLEANUP" + info "${log_msg}" + fi + save_log "- ${log_msg}" + + if ${SSH_STR} /file remove ${current_backup}; then + log_msg="- Remove ${current_backup} file on ${RouterName} complete succesfully!" + if [ -t 1 ] && $DEBUG_OUT; then + success "${RouterName} ${log_msg}" + fi + save_log "${log_msg}" + else + log_msg="- Error Remove ${current_backup} file on ${RouterName}!" + if [ -t 1 ] && $DEBUG_OUT; then + error "${RouterName} ${log_msg}" + fi + save_log "${log_msg}" + fi + + cd "${BaseDir}" + + CurrentHistoryDir=${HistoryDir}"${DStamp}/" + ${CMD_MKD} -p ${CurrentHistoryDir} + diff_config_history=${CurrentHistoryDir}"${DTStamp}-Diff-Config.rsc" + log_msg="- Move ${diff_config} file to ${CurrentHistoryDir}." + if [ -t 1 ] && $DEBUG_OUT; then + info "${RouterName} ${log_msg}" + fi + save_log "${log_msg}" + + if ${CMD_MV} -f ${diff_config} ${diff_config_history}; then + log_msg="- Move ${diff_config} file to ${CurrentHistoryDir} complete succesfully!" + if [ -t 1 ] && $DEBUG_OUT; then + success "${RouterName} ${log_msg}" + fi + save_log "${log_msg}" + else + log_msg="- Error move ${diff_config} file to ${CurrentHistoryDir}!" + if [ -t 1 ] && $DEBUG_OUT; then + error "${RouterName} ${log_msg}" + fi + save_log "${log_msg}" + fi + + log_msg="- Go to Git directory (${GitDir}), add backups files and commit him." + if [ -t 1 ] && $DEBUG_OUT; then + section " COMMIT " + info "${RouterName} ${log_msg}" + fi + save_log "${log_msg}" + cd "${GitDir}/" + git add . + log_msg="- Git add commit..." + if [ -t 1 ] && $DEBUG_OUT; then + info "${RouterName} ${log_msg}" + fi + save_log "${log_msg}" + if git commit -m "Backup for ${RouterName} sucessfully creatd at $(date '+%b %d %T')."; then + log_msg=" - Git add commit success." + if [ -t 1 ] && $DEBUG_OUT; then + success "${RouterName} ${log_msg}" + fi + save_log "${log_msg}" + else + log_msg="- Git add commit Error!" + if [ -t 1 ] && $DEBUG_OUT; then + error "${RouterName} ${log_msg}" + fi + save_log "${log_msg}" + fi + log_msg="- Git push commit..." + if [ -t 1 ] && $DEBUG_OUT; then + info "${RouterName} ${log_msg}" + fi + save_log "${log_msg}" + if git push origin main; then + log_msg=" - Git push commit success." + if [ -t 1 ] && $DEBUG_OUT; then + success "${RouterName} ${log_msg}" + fi + save_log "${log_msg}" + else + log_msg="- Git push commit Error!" + if [ -t 1 ] && $DEBUG_OUT; then + error "${RouterName} ${log_msg}" + fi + save_log "${log_msg}" + fi +else + log_msg="- ${RouterName} backup complete!" + if [ -t 1 ] && $DEBUG_OUT; then + info "${RouterName} ${log_msg}" + fi + save_log "${log_msg}" +fi + +log_msg="- Remove Temp directory." +if [ -t 1 ] && $DEBUG_OUT; then + info "${RouterName} ${log_msg}" +fi + save_log "${log_msg}" + +${CMD_RM} -d ${TempDir} +log_msg="- backup complete!" +if [ -t 1 ] && $DEBUG_OUT; then + success "${RouterName} ${log_msg}" +fi +save_log "${log_msg}" + +done <<<"$(echo -e $HR)" +LogFile="${DEFAULT_LOG}" +# echo -ne "\\r[${BAR_SIZE:0:percBar}] $perc %" +#echo "[] $perc %" +done +log_msg="All Done! Exit 0." +if [ -t 1 ] && $DEBUG_OUT; then + section " DONE " + success "${log_msg}" +fi +save_log "${log_msg}" +exit 0 diff --git a/.bin/scripts/mktmpfs.rsc b/.bin/scripts/mktmpfs.rsc new file mode 100644 index 0000000..dbe979c --- /dev/null +++ b/.bin/scripts/mktmpfs.rsc @@ -0,0 +1,3 @@ +:global MkDir; +:put [($MkDir /usb1/tmpfs)]; +:log warning ("\$MkDir = " . $MkDir . "."); diff --git a/.bin/test.sh b/.bin/test.sh new file mode 100755 index 0000000..67b9dd5 --- /dev/null +++ b/.bin/test.sh @@ -0,0 +1,237 @@ +#!/bin/bash +# Add to cron +# crontab -e +#*/20 * * * * /var/www/ros.vados.ru/Mikrotiks/.bin/ros-diff.sh +#set +eo pipefail +#set -x +# +DEBUG_OUT=true +if [ -t 1 ] && $DEBUG_OUT; then + reset='\033[0m' + bold=$(tput bold) + #'\033[1m' + red=$(tput setaf 7)$(tput setab 1) + #'\033[1;31m' + green=$(tput setaf 4)$(tput setab 7)$(tput bold) + #'\033[1;32m' + yellow='\033[1;33m' + blue='\033[1;34m' + magenta='\033[1;35m' + cyan='\033[1;36m' + white='\033[1;37m' +else + reset='' bold='' red='' green='' yellow='' blue='' cyan='' magenta='' white='' +fi + +info() { + if $DEBUG_OUT; then + echo -e "${blue}ℹ $*${reset}" + fi +} +success() { + if $DEBUG_OUT; then + echo -e "${bold}${green}✅ $*${reset}" + fi +} +error() { + if $DEBUG_OUT; then + echo -e "${red}❌ Error: $*${reset}" >&2 + fi +} +warning() { + if $DEBUG_OUT; then + echo -e "${yellow}⚠ $*${reset}" >&2 + fi +} +section() { + if $DEBUG_OUT; then + echo -e "\n${magenta}====$*====${reset}" + fi +} +toend=$(tput hpa $(tput cols))$(tput cub 6) +toend_ok() { + if $DEBUG_OUT; then + echo -n "${toend}${white}[${green}OK${white}]" + fi +} +toend_error() { + if $DEBUG_OUT; then + echo -n "${toend}${white}[${red}ERROR${white}]" + fi +} +BR() { + if $DEBUG_OUT; then + echo -e "\n" + fi +} + +error "error" +success "success" +exit 0 + +# HomeDir=$HOME +HomeDir="/var/www/ros.vados.ru/Mikrotiks" +HostsFile=${HomeDir}"/.config/.mikrotiks" +BinDir=${HomeDir}"/.bin" +GitDir=${HomeDir}"/backups" + +SSH_KEY=${HomeDir}"/.ssh/id_rsa" +# Require router-specific SSH key +if [ ! -f "$SSH_KEY" ]; then + error "Error: SSH key not found at $SSH_KEY" + error "Run ./setup-ssh-keys.sh to generate the key" + exit 1 +fi + +############################### +# Backup listing +############################### +# Get Names Addresses and Ports in $HostsFile + +readarray -t lines < $HostsFile + +for HR in "${lines[@]}"; do +while IFS=$' ' read -a HR ; do +#|| [ -n "$HR" ]; do +[[ -z ${HR[0]} ]] && continue + +#GEN_DATE=$(date '+%Y-%m-%d %H:%M:%S %z') +GEN_DATE=$(date '+%d.%m.%Y') +GEN_TIME=$(date '+%b %d %T') +GEN_DATE_TIME=$(date '+%d.%m.%Y %T %Z') +DStamp=$(date '+%Y%m%d') + +RouterName=${HR[0]} +SSHhost=${HR[1]} +SSHport=${HR[2]} +SSHuser=${HR[3]} +SSHpassword=${HR[4]} + +BaseDir=${HomeDir}"/backups/"${RouterName} +TempDir=${BaseDir}"/tmp" +HistoryDir=${BaseDir}"/history" +LogFile="/var/log/Mikrotiks/"${RouterName}".log" + +SSH_OPTS="-i $SSH_KEY -o PasswordAuthentication=no -p ${SSHport}" +SFTP_OPTS="-i $SSH_KEY -o PasswordAuthentication=no -oPort=${SSHport}" +echo "${GEN_DATE_TIME} - Start backup script ${ARGV[0]} for ${RouterName}" >> ${LogFile} +section "Create dirs" +info "Create servise directories for ${RouterName}..." +echo "${GEN_TIME} - Create services directories for ${RouterName}..." >> ${LogFile} +mkdir -p ${BaseDir} +mkdir -p ${TempDir} +mkdir -p ${HistoryDir} +echo "${GEN_TIME} - All Directories for ${RouterName} was created sucessfully!" >> ${LogFile} +success "All directories for ${RouterName} was created sucessfully!" +echo "${GEN_TIME} - Set variables for ${RouterName}..." >> ${LogFile} +info "Set variables for ${RouterName}..." +precedent_config=${BaseDir}"/Precedent-Config.rsc" +current_config="Config.rsc" +current_backup="Binary.backup" +diff_config=${TempDir}"/Diff-Config.rsc" +echo "${GEN_TIME} - Set variables for ${RouterName} success!" >> ${LogFile} +success "Set variables for ${RouterName} success!" +#ssh ${SSH_OPTS} ${SSHuser}@${SSHhost} system script run MkTmpfs; +cd ${TempDir} +section "" +BR +section "Start checkout process" +info "Download ${current_config} file to Temp Directory..." +echo "${GEN_TIME} - Download ${current_config} file to ${TempDir}" >> ${LogFile} +ssh ${SSH_OPTS} ${SSHuser}@${SSHhost} export >$current_config +if [ $? -eq 0 ]; then +echo +toend_ok +echo +echo "${GEN_TIME} - Download complete!" >> ${LogFile} +else +echo +toend_error +echo +echo "${GEN_TIME} - Download ${current_config} failed!" >> ${LogFile} +exit 1 +fi +info "Comparing with the previous config..." +echo "${GEN_TIME} - Comparing with the previous config..." >> ${LogFile} +diff -I "RouterOS" ${current_config} ${precedent_config} >${diff_config} +if [ "$?" -ne "0" ]; then +echo "${GEN_TIME} - There is a difference! Create backup..." >> ${LogFile} +section "Create backup for ${RouterName}" +BackupDir=${BaseDir}"/"${DStamp} +mkdir -p ${BackupDir} +DTStamp=$(date '+%Y%m%d%H%M%S') +save_config=${DTStamp}"-Config.rsc" +save_backup=${DTStamp}"-Binary.backup" +diff_config_history=${DTStamp}"-Diff-Config.rsc" +echo "${GEN_TIME} - Copy ${current_config} file to ${BackupDir} directory..." >> ${LogFile} +cd ${TempDir} +rm -f ${precedent_config} +cp ${current_config} ${BackupDir}"/"${save_config} +mv -f ${current_config} ${precedent_config} +echo "${GEN_TIME} - Copy configuration to ${BackupDir}/${save_config} and ${precedent_config} success." >> ${LogFile} +success "Copy configuration to ${BackupDir}/${save_config} and ${precedent_config} success." +info "Create ${current_backup} file on ${RouterName}..." +echo "${GEN_TIME} - Create ${current_backup} file on ${RouterName}..." >> ${LogFile} +ssh ${SSH_OPTS} ${SSHuser}@${SSHhost} system backup save name=${current_backup} +if [ $? -eq 0 ]; then +echo +toend_ok +echo +echo "${GEN_TIME} - Create binary backup ${current_backup} on ${RouterName} success." >> ${LogFile} +info "Start download ${current_backup} file to ${BackupDir}..." +echo "${GEN_TIME} - Start download ${current_backup} file to ${BackupDir}..." >> ${LogFile} +sftp ${SFTP_OPTS} ${SSHuser}@${SSHhost}:$current_backup +sleep 1 +success "Download complete!" +echo "${GEN_TIME} - Download complete!" >> ${LogFile} +cd ${BackupDir} +sleep 2 +mv -f ${TempDir}"/"${current_backup} ${save_backup} +echo "${GEN_TIME} - Remove ${current_backup} file on ${RouterName}." >> ${LogFile} +ssh ${SSH_OPTS} ${SSHuser}@${SSHhost} /file remove ${current_backup} +else +echo +toend_error +echo +echo "${GEN_TIME} - Create binary backup ${current_backup} failed!" >> ${LogFile} +ssh ${SSH_OPTS} ${SSHuser}@${SSHhost} /file remove $current_backup +exit 1 +fi +cd ${TempDir} +CurrentHistoryDir=${HistoryDir}"/"${DStamp} +mkdir -p ${CurrentHistoryDir} +echo "${GEN_TIME} - Move ${diff_config} file to ${CurrentHistoryDir}." >> ${LogFile} +mv -f ${diff_config} ${CurrentHistoryDir}"/"${diff_config_history} +echo "${GEN_TIME} - Move ${diff_config} file to ${CurrentHistoryDir} complete." >> ${LogFile} +echo "${GEN_TIME} - Go to Git directory (${GitDir}), add backups files and commit him." >> ${LogFile} +rm -d ${TempDir} +cd ${GitDir} +git add . +echo "${GEN_TIME} - Git add commit..." >> ${LogFile} +git commit -m "Backup for ${RouterName} sucessfully creatd at ${GEN_TIME}." +echo "${GEN_TIME} - Done." >> ${LogFile} +echo "${GEN_TIME} - Git push..." >> ${LogFile} +git push origin main +echo "${GEN_TIME} - Done." >> ${LogFile} +echo "${GEN_TIME} - ${RouterName} backup complete!" >> ${LogFile} +success "${RouterName} backup complete!" +fi +section "The files are identical. No backup is required." +echo "${GEN_TIME} - The files are identical. No backup is required." >> ${LogFile} +echo "${GEN_TIME} - Remove ${diff_config} file." >> ${LogFile} +info "Remove ${diff_config} file." +rm -f ${diff_config} +echo "${GEN_TIME} - Remove ${current_config} file." >> ${LogFile} +info "Remove ${current_config} file." +rm -f ${current_config} +echo "${GEN_TIME} - Remove Temp directory." >> ${LogFile} +info "Remove Temp directory." +rm -d ${TempDir} +section "" +success "${RouterName} backup complete!" +echo "${GEN_TIME} - ${RouterName} backup complete!" >> ${LogFile} +done <<<"$(echo -e $HR)" +done +section "All Done!" +echo "All Done!" >> ${LogFile} +exit 0 diff --git a/.bin/vados-dev.pub b/.bin/vados-dev.pub new file mode 100644 index 0000000..f12f291 --- /dev/null +++ b/.bin/vados-dev.pub @@ -0,0 +1,52 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +mQINBGmljUMBEACxefwXx+q16488USN0uBplV3ZXRqZVSz7B92L0tSGjuND75WFS +xLty5U1EnAu18Fgh3pKGsznHo4wFbzsOX7EG9DWff7PZAeexlO72iB8xeLdsBPVM +rXCnYCend3k7PfsHHf9ymhfNho1sasCO792/03cVdSxpEJeiHUW3BgvPHynk87Fm +I1LW4mhlhBvPAuVOyTz1t+iAJoVcxSAhKFDJ7eMx1yK/bUL0aRTJcy8MmFi4lg3i +Hh7va8gCHlznPnlMaFJm37T3eaXzjKReSL2f0BVBkFYGHSiEie2k7vXz2fXN7url +qwKL73fbkOPh60QnH5m5uPjIFk74kxTnNhro80krPFwIx85aRL2L23+qBMznP6cg +jk2/xX1hP/fIg0YLmmJBwgrNpHJAwfpsaj8BQeNnq2bNHSwqvJdmGDxiuTL7OKu3 +YY+03E0FvZwHpFmm55BwuFyjRGCLoDuShgleZAIfE8rWaApW1YBxUCnp8BMH5kCB +UE8cpd5qzPvwlc/50ZAchXJ553w5Um6d1ys3X3O4fr2SksTr3QBy7G8rwUHVqYqB +FuPHyD9X4wBeGKkQlm/BvLdrqXLobosS+gHKK/AYm+Fe+GB+XAIf+Th89Zd0t3Ca +cTZcezVNmTrW27VRICNet6enePZ+HcLBRT9oP/VO3q4wty86cyUXPlGSFQARAQAB +tDh2YWRvcy1kZXYgKEdQRyBLZXkgZm9yIHZhZG9zLWRldiA0MDk2LikgPHZhZG9z +QHZhZG9zLnJ1PokCUQQTAQgAOxYhBKvkz2GoXN1uFfLALfzF5MdAe4v3BQJppY1D +AhsDBQsJCAcCAiICBhUKCQgLAgQWAgMBAh4HAheAAAoJEPzF5MdAe4v3lMcQAKHn +TkFfZlCTU1M2KAMzrmXseu9rO7WhYOsYAUehThYU4z6BM1jHv8HLtK+A9i1ncRdm +qhSL6xWiYE3YT9Bhb2wDaYWLAnRILJtevSCtlqssvjFRfT+9rs3QNxgagQNQuwKq +UCdnpC1pVj9anVd6H01uJKrr1V++uAca1YxiQwOGnIbw+Z++02eFjvmkqzQo3nwM +rpKoyo6axqUiBwl9iXJH34qBjtwGiCt2UYl0RCZj5O1j0gpKgqgRHB4B+F2Tp1Jw +VvfwKmtHymycf0VgvKybhy4PNJcmmFnQOCjJ5ttp7Je3M9jGwtAxHoVcrXtQNTPv +CZfu8dPX/0GJCmxePW3NTxXhSeOZ/j5nKXdgXjsgcq9tajPBe98dNobfGu1ySWf6 +3vTx1B1hBQeZWTT56RLxzX6u1v9N3WbKjOxVcxRoxWw38zLw3LkXCdGwWgDfyWPF +v/M7U2sncdCBkmfgcL6dwAjeD+3T/W+iter5POXK+AJ/dy1Zj74sgVfY6rA9A4sI +9/H2YR4auNMsnpw10qRn+3bPmQkWWR1DrNU5YtQT+Hv+wMpxQYIWyFZWQ00c66SQ +mfAianad00R5LfR+FpOxgHDZi6qUP1zRjNqjBfQ/OGn4IQZU3CCxK4bKRjMbORc4 +uxwWphbhLLOq3BBS9e7M4RErPtguP1s26vdJLUXauQINBGmljUMBEADBEmQjup5c +uyjgUBRYvheFNo8ufoD3u08vEybjN68bhdX31NLWUVNL4uoQkYQHI+iKEybkEOF9 +Ac/c5IoDOQ4f5u16d/Aupf1gbDZn7Dy1tNK34qxJjzC5PnWXoy4k1UfuO7/aDfsl +9Vkl41UwTf4Pc88JxK0DJqFqGvGcL/Z7bHGVjuFmfoeLDrHk4yuXhqHlHQLeMQRW +wpsZSayzRqNFNlgIFUSyf2WYfuA9AbLc6MseIbEI6zzVCuCq1zLAMkB+fyhijP8i +s5Z1p+pT0zShV4JVnBcWceSV4Jhc2518+MvWaRtulLSyEJ+uuG2AOXbSmU45MR81 +jRAozUe31ObUzZb1eYJpsIekSCubDEfRaTdQnZ5dn+Vr2qAnLoZljWNrkyn4ABe4 +lPW/nDpPDUwOgiTQFs0BMpWDdceuBzCS7tkuGi7trm817DcaCKwpr/bJziLCPvRe +vWjenHAykVK88k0jdTk9Hz09wVNOMJTRsUrgY2TtbklW3W35TF3mzgiQHwyNJ9Ya +C4rr1orhmpDYNYIJhK5VItbEwGV64s2rSDAayYsMIFsSemPdyq9SxNzbtP8PSJgH +Uyd0CWFwcJxz/06qblaK08mHSWhpuBMVzpjoJrtKTSlGU0TTX2ulUhyDpZy9tYkZ +wscPc1nIV3KBLtg9iND4r2S6TbqQbJD8oQARAQABiQI2BBgBCAAgFiEEq+TPYahc +3W4V8sAt/MXkx0B7i/cFAmmljUMCGwwACgkQ/MXkx0B7i/ecug/9H0yWseXEcd9t +qUiQfKOEwzYhC/RCKikDb17aOuk0W43qhGy68bVk0no4D6ZMlGghwh//NO/6S49p +16mlHSlOq1bo97Ux1v6uUq/o/JZRwaxMROUxGqMtybhrLwf7rtK9pAhvteUHJpd2 +OIiwO0n/UPTHPa1ZeUllgCTtrNzO8CHr71S/7RRQr1cN8kf4MMqRcAK7Du8DncC5 +WiFl5eOY6qyHEjAhRVr3aO2zUuWLUpaopKlpEYMFxBSaZdBrCsPbX6CMZrE/OUwr +e0szl33gKb33B4rRpLOFpMT5OySe7ggyfC2gLQvZjWYkVAIAquTvYqsC5d6fWNY8 +9KOEYBjM5ZzHOYenGHiQPOMMCV5nWyZOHYwwvV+EUgSLo42zHW5wWA+yTpVAmHQy +dJWodLwZviEyyeSUbEluzYzRvpO2s0avaqIhPCkv1p7iuaRBsGt9ro4I/9Kfl3OZ +v0iWd1iJE6xOceIx6MMI0bIBndXvkbiyyP5AGk52hsmHkxmz8D7IAEFnT27tsly+ +T69wTo+lihCKAMAMMYKz4a6FoTfMwJdSmQU/XIc5mUUm01Phtavibzsunkc8/HAI +8ZWS7f0TqjQwiTUDQHaiUwOtr4yVcd001xZK8agEBuFSoxZ2gGbR3MppS5SuIY/N +xxhbToemQWa7K4H99vyLZtG1OhOC0lk= +=wMLT +-----END PGP PUBLIC KEY BLOCK----- diff --git a/.cache/mc/Tree b/.cache/mc/Tree new file mode 100644 index 0000000..1d9672d --- /dev/null +++ b/.cache/mc/Tree @@ -0,0 +1 @@ +Midnight Commander TreeStore v 2.0 diff --git a/.config/.mikrotiks b/.config/.mikrotiks new file mode 100644 index 0000000..53a2c1b --- /dev/null +++ b/.config/.mikrotiks @@ -0,0 +1,3 @@ +MikroNUC 10.30.30.10 2222 mikro_bak Peskar55 +MikroMaster 10.30.30.81 2222 mikro_bak Peskar55 +MikroYellow 10.30.30.86 2222 mikro_bak Peskar55 diff --git a/.config/mc/hotlist b/.config/mc/hotlist new file mode 100644 index 0000000..e69de29 diff --git a/.config/mc/ini b/.config/mc/ini new file mode 100644 index 0000000..b91996b --- /dev/null +++ b/.config/mc/ini @@ -0,0 +1,165 @@ +[Midnight-Commander] +verbose=true +shell_patterns=true +auto_save_setup=true +preallocate_space=false +auto_menu=false +use_internal_view=true +use_internal_edit=true +clear_before_exec=true +confirm_delete=true +confirm_overwrite=true +confirm_execute=false +confirm_history_cleanup=true +confirm_exit=false +confirm_directory_hotlist_delete=false +confirm_view_dir=false +safe_delete=false +safe_overwrite=false +use_8th_bit_as_meta=false +mouse_move_pages_viewer=true +mouse_close_dialog=false +fast_refresh=false +drop_menus=true +wrap_mode=true +old_esc_mode=true +cd_symlinks=true +show_all_if_ambiguous=false +use_file_to_guess_type=true +alternate_plus_minus=false +only_leading_plus_minus=true +show_output_starts_shell=false +xtree_mode=false +file_op_compute_totals=true +classic_progressbar=true +use_netrc=true +ftpfs_always_use_proxy=false +ftpfs_use_passive_connections=true +ftpfs_use_passive_connections_over_proxy=false +ftpfs_use_unix_list_options=true +ftpfs_first_cd_then_ls=true +ignore_ftp_chattr_errors=true +editor_fill_tabs_with_spaces=false +editor_return_does_auto_indent=false +editor_backspace_through_tabs=false +editor_fake_half_tabs=true +editor_option_save_position=true +editor_option_auto_para_formatting=false +editor_option_typewriter_wrap=false +editor_edit_confirm_save=true +editor_syntax_highlighting=false +editor_persistent_selections=true +editor_drop_selection_on_copy=true +editor_cursor_beyond_eol=false +editor_cursor_after_inserted_block=false +editor_visible_tabs=true +editor_visible_spaces=true +editor_line_state=false +editor_simple_statusbar=false +editor_check_new_line=false +editor_show_right_margin=false +editor_group_undo=true +editor_state_full_filename=true +editor_ask_filename_before_edit=false +nice_rotating_dash=true +mcview_remember_file_position=false +auto_fill_mkdir_name=true +copymove_persistent_attr=true +pause_after_run=2 +mouse_repeat_rate=100 +double_click_speed=250 +old_esc_mode_timeout=1000000 +max_dirt_limit=10 +num_history_items_recorded=60 +vfs_timeout=60 +ftpfs_directory_timeout=900 +ftpfs_retry_seconds=30 +fish_directory_timeout=900 +editor_tab_spacing=8 +editor_word_wrap_line_length=72 +editor_option_save_mode=0 +editor_backup_extension=~ +editor_filesize_threshold=64M +editor_stop_format_chars=-+*\\,.;:&> +mcview_eof= +skin=default + +filepos_max_saved_entries=1024 +shadows=true +shell_directory_timeout=900 + +[Layout] +output_lines=0 +left_panel_size=88 +top_panel_size=0 +message_visible=false +keybar_visible=false +xterm_title=true +command_prompt=true +menubar_visible=false +free_space=true +horizontal_split=false +vertical_equal=true +horizontal_equal=true + +[Misc] +timeformat_recent=%b %e %H:%M +timeformat_old=%b %e %Y +ftp_proxy_host=gate +ftpfs_password=anonymous@ +display_codepage=ASCII +source_codepage=ASCII +autodetect_codeset= +spell_language=en +clipboard_store= +clipboard_paste= + +[Colors] +base_color= +xterm-256color= +color_terminals= +linux= +xterm= + +[Panels] +simple_swap=false +show_mini_info=true +kilobyte_si=false +mix_all_files=false +show_backups=true +show_dot_files=true +fast_reload=false +fast_reload_msg_shown=false +mark_moves_down=true +reverse_files_only=true +auto_save_setup_panels=false +navigate_with_arrows=true +panel_scroll_pages=true +panel_scroll_center=false +mouse_move_pages=true +filetype_mode=true +permission_mode=false +torben_fj_mode=false +quick_search_mode=2 +select_flags=6 + +[FindFile] +file_case_sens=true +file_shell_pattern=true +file_find_recurs=true +follow_symlinks=true +file_skip_hidden=false +file_all_charsets=false +content_case_sens=true +content_regexp=false +content_first_hit=false +content_whole_words=false +content_all_charsets=false +ignore_dirs_enable=true +ignore_dirs= + +[Panelize] +Find *.orig after patching=find . -name \\*.orig -print +Find rejects after patching=find . -name \\*.rej -print +Modified git files=git ls-files --modified +Find SUID and SGID programs=find . \\( \\( -perm -04000 -a -perm /011 \\) -o \\( -perm -02000 -a -perm /01 \\) \\) -print diff --git a/.config/mc/panels.ini b/.config/mc/panels.ini new file mode 100644 index 0000000..92992b2 --- /dev/null +++ b/.config/mc/panels.ini @@ -0,0 +1,35 @@ +[New Left Panel] +display=listing +reverse=false +case_sensitive=true +exec_first=false +sort_order=name +list_mode=full +brief_cols=2 +user_format=half type name | size | perm +user_status0=half type name | size | perm +user_status1=half type name | size | perm +user_status2=half type name | size | perm +user_status3=half type name | size | perm +user_mini_status=false +list_format=full + +[New Right Panel] +display=listing +reverse=false +case_sensitive=true +exec_first=false +sort_order=name +list_mode=full +brief_cols=2 +user_format=half type name | size | perm +user_status0=half type name | size | perm +user_status1=half type name | size | perm +user_status2=half type name | size | perm +user_status3=half type name | size | perm +user_mini_status=false +list_format=full + +[Dirs] +current_is_left=true +other_dir=/mnt/d/dst/D41/vbmeta-tools diff --git a/.docker/config.json b/.docker/config.json new file mode 100644 index 0000000..293b875 --- /dev/null +++ b/.docker/config.json @@ -0,0 +1,7 @@ +{ + "auths": { + "ghcr.io": { + "auth": "cG9ydGFpbmVyX3J1bm5lcjpnaHBfV2pQRmh1SmxuTnhUQ3M5bzJJRVRSSFM4TnBIdUxuNEtnZ05V" + } + } +} \ No newline at end of file diff --git a/.gitconfig b/.gitconfig new file mode 100644 index 0000000..5775805 --- /dev/null +++ b/.gitconfig @@ -0,0 +1,25 @@ +[user] + name = vados-dev + email = vados@vados.ru + signingkey = 1FD2694762FCE438 +[color] + ui = auto +[safe] + directory = /home/vados/sl8541e_cus_go + directory = /var/www/ros.vados.ru/html/mikrotik-routeros-scripts + directory = /var/www/ros.vados.ru/Mikrotiks/backups + directory = /var/www/ros.vados.ru + directory = /.data/nfs/repos/Mikrotiks/ros.vados.ru.git + directory = /.data/nfs/repos/Mikrotiks/ros.vados.ru.git +[init] + defaultBranch = main +[core] + autocrlf = false +[http] + cookiefile = %USERPROFILE%\\.gitcookies +[protocol] + version = 2 +[commit] + gpgsign = true +[gpg] + program = /usr/bin/gpg diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7dcd4ed --- /dev/null +++ b/.gitignore @@ -0,0 +1,10 @@ +# folder for backups repo +backups +# backup and temporary files +*~ +# patches and related files +*.orig +*.patch +*.rej +*.diff +checksums.json diff --git a/.gnupg/gpg-agent.conf b/.gnupg/gpg-agent.conf new file mode 100644 index 0000000..3b113ed --- /dev/null +++ b/.gnupg/gpg-agent.conf @@ -0,0 +1,2 @@ +default-cache-ttl 34560000 +max-cache-ttl 34560000 diff --git a/.gnupg/gpg.conf b/.gnupg/gpg.conf new file mode 100644 index 0000000..3d24957 --- /dev/null +++ b/.gnupg/gpg.conf @@ -0,0 +1,4 @@ +keyid-format 0xlong +throw-keyids +no-emit-version +no-comments diff --git a/.gnupg/private-keys-v1.d/31D1EFFF9AB16804AED7D707BE9E92616644CFFE.key b/.gnupg/private-keys-v1.d/31D1EFFF9AB16804AED7D707BE9E92616644CFFE.key new file mode 100644 index 0000000..197d8ee --- /dev/null +++ b/.gnupg/private-keys-v1.d/31D1EFFF9AB16804AED7D707BE9E92616644CFFE.key @@ -0,0 +1,54 @@ +Created: 20260302T170556 +Key: (private-key (rsa (n #00B9B822209385B68B96FB3A8BA6FCF3EFCD44E21837 + 2D539F38B630EFB0EDB11405170AF4BBB3DB7D9A79317B116BA6EF237B7442E4519E20 + 68AD77F9157FA18F2178F53749741B02A341BCC9807D9BD264D8B2B06A0D77F8D326D2 + F78740C444E48C8456B02A87ED954CC806EADDAB050359DC5E9BB06DD451456C8EE247 + 551A9382345B75A5EAFFC889B0DCA08A05E992BB13C5599C62B69C35E8CC4E9B62FFF1 + 5B5BD09C038C50651C1170A533C51997ACA8792576CBA6F99D30D679F3FCDBDA3C3B15 + AE4B6FDC70F0D29CE0F5B99B954501609A2F2CF55ABC4932D2C00814BFE7E55276942A + 5631976A0F7EEDB3BABD2A6E29CE0E35B100F910F2E0482BF1DED0C1A49EBE6E397170 + 2C3473F73E5611DD69B46CA9C8D94BF1EC5292995CF3BE24E40C1DE6F97FF77782F92C + CD673B1C9748DE885576B72AB24048F83C4FC055584F8B0A0F2645A04C82696D197C4B + CA22C71B786019D5D37C320D505456BF4CC0D88F4B73FAE37BDE4CABFD30AE4BFFD267 + 3E479BEDB1F4366379C3D88474CB6F7E7BE68BF5660A14438ACD240AF84CF41DD80F0C + EC65D5323444F870C6E2ED37C2B7926757BEBF00C59668F4DEE86CA0FB90F388719A96 + 77D9357E537F6DA34A4ED4BC41EF0F9105FDB077CB77AB99EE9C946B25559B4759117F + 5F2E8A23EFACC7CD5B61B872F4BECDF003A89CAD32B59C10AE08AD67B147D05B68794D + 85#)(e #010001#)(d #156872D2A37EB5D8A86A4448E5D261C2223CCEFD309B127917 + 9DF4CD246D79CC8F7BA5012A03E508B8FE406469D1297886740C264BD056B470AC9258 + 4D909D4C74F4CEFB7505A3B96D9D3DC8527DE830DBFC18B8FA389C3C3C06CD29C85700 + 68DA999205B61FE8F44B9202BABD6718F826773CCE510F08D2011E4A11BC66B19A3327 + BEA64E4CF6664EB50484A222D6E4A24BDB4F13F1D17530538C86C486E7E60DE9D48F1A + F4D3BF4EB06A183C8AD7AD080D588C4273CBACEF381DF193343B51127A7FEB1360D1BF + ACEB2DB3F4C08E892F2F39A5EB90059430C5E4802DC80206764AA2661B921FC138CD35 + E61C61052740F7FBA3E9033D502E87075B9FDBE1E8B89F4077DA785A9AF211FF466FD8 + 85BC29844AAA8519D45BB5A41B5B5DE2EB3229D3D291F6CD18B74272597ADAF2710D0B + 19874B37AE3AC04C432DEB70DE5478213BB6A41396839020AB83E6A920970AD44C04BA + 69FF14F9123D21A43235D068104CDF142CA52E64915C74777C8813DE708AA3673A6BD9 + 75956603E3ADDF33ABC4D9289208960272FC26656D619D2EDCFA65690AE8F9539B54E5 + 2F394F4602E53A31C45556C6449D75F1400AFCF5A46D405F559F9679A32C378DA1F7D3 + 8491180972EDD8D1D02894EFB86FF8966731522BFC34217ED525DD8BEA717CC74FEC8D + 7C8AE814A281FF016CF84895D1C64680CFD7B583DCC0429BFC90C5A645A8D0A1#)(p + #00C5DC11B26A0B58F744E80327F7BB1D47B0F3135669DC73467A584D4C68F37FA832 + 3ADBF6B823F95DCB85BC1578365F8A00693A8DADF0FBFD6267B144B15DF5DFA573C86C + 9D28F9F08FC52536E692AD961B125E845B5D86B421F8CC472480262EEC029A9A8A34D1 + B2DFC49FF2B1BCE3E9FF9F2663B7CF044994245770F3E8DFC5846CA7CCE7E1AA4C4116 + 6D3D4B7E60D14895425CE9213837CAC049F0C026F187FF8F1E85B08180F35E39710EE4 + 704E110D85D868D6AB57DC7B52E49688575C7C2D2AFC50112CD98D9CF87D47013EB3D5 + 812331D1A19404D823879FED554736376F54E03FED523D5C36D078FBFBDA35AC6A20F9 + 67FD3CCD10315F803EAFC08D51#)(q #00F04ACEEA544678ED5D95DB20AD8ABE92F409 + A8E7D66E9AB3AC1C38DAFB779266E02CC691F42FE566C5434B773C3F31DD6538993197 + D70DCFCAA5ACC3F7609155D3EFD9B11D659E0D74088A0A7CA82E34CCBCC63D52663883 + 2995D610979F9377B37B0C4B01C17498DF297D25F87E9A99F7E52DEA579441AF93AD5B + D4F91CEA3D2976C939510B12DD8379E97D8A3C3E21C17B306427B9C4BA73AE47F9E4D8 + F77D040640E6EFFDC008115FC13B272BE31B15AFCCD4FC00A4A23E41A83DA792E577F0 + DCCF1428616F6827AF1A4683482B8062D33DB385C1354A49FE067F2746E0863E6B6FAC + ECCB32A868097D903CDEC7009187C35B89A2BDFD2696DBA860715FF5#)(u + #00B7F6B546666EE285F19AF7185C4784CB30658C56E734C5FA79761724A1557FDDC3 + CC4A90445D4E129AF9B6F27026DA18711B742638E917567DBF9BED2380FD0D45A0D672 + 1488AB1B8810812B2E99017681F57ED7C3ED4E1E1CB13B2068EC517E40B511FE75BC88 + 04AB678230B0C1C3A92E785A1BA395948732D6386D1D422C928DE1806B86F54ACE3A80 + 5D0AEE476D13DFE0010BD6233312E481133A96DC6BCD25EDCDB75548C93AC22C1BC911 + 9C2361CB5A030CEE414D23B727A4AF9A05CFB08EE311D6D561F277E351307AB1CC85FA + 6BDD845738EB6C1E372E18BA8C3198BA078D3B307C29C857057367149B233D20038A11 + 80A60936EDF97E30EE2F4D5386#))) diff --git a/.gnupg/private-keys-v1.d/6E34CDD90E628EB91C9706FAB642A5AA2D6DEA2F.key b/.gnupg/private-keys-v1.d/6E34CDD90E628EB91C9706FAB642A5AA2D6DEA2F.key new file mode 100644 index 0000000..66a4e89 --- /dev/null +++ b/.gnupg/private-keys-v1.d/6E34CDD90E628EB91C9706FAB642A5AA2D6DEA2F.key @@ -0,0 +1,54 @@ +Created: 20260302T170556 +Key: (private-key (rsa (n #00E9A0B1AD5A4C1D3D067EE14FF75681AE4F1C09BE8D + 7934551697F87020527905B106987DD423215F77E203B653D58F8E450698BBA87CE9BA + 2A861826972804C1233D0373C4C696D61C82A94762D62F800C99FF68BDACFF5D45F0B4 + 3484F6AF8A4EA1342BD2D09BB73EF3AE37C4881E5C1887AF016AC3518D843CB1292A87 + 55CB94ACE360EC2D9B860C51D5A9F83BA91D26CC2A2F232584D27F4A8BFA6035D06EC8 + 253B930748BAA1D388FD63509DB8F7CCDA64B4F396DBABA2B595E3FF694B032631B7CD + CA0D3114BDCC2520EAE02028FC3E5D7BBF2EAFA6EE2D09D08904D26331736578B229D5 + 8083F25B988F28CAEED44FA46711ED70685AC5F96079DC14BD1AC21537CC5A7A1729C4 + 402FB96739C77FE4C1B1D0D9E9A99168678F744BAF85A3632F06B4263DE55B66A3E60D + 264E344257A531C7CD4B9247817AF2FBC84ABDEF00C2038CA9DF1B9C4A3472AF58DC02 + 1002E2047806BC69912922DA8C35859D04282DAECBB9623F6DF207E46D54F63246C5DB + 7DCFEE4BB873E148CB42AF5D7A5F1AC444CAE7469274AD5D5E19740BD8407FCCCBE509 + C7DBAFB3C17C405E51422F78A807CCFDF3E0D2521377C4BC487CB56BF3D95A233B621D + F4814668E0D71ED6474AC1D752152C9EA47B2157E7C37415F97E855DAD788B5F6D44FF + 2517140FE037B0147FA9BC1A94F0534EAEEA22D9238DE4AD5189A7ABCC61BF0144DA5D + A3#)(e #010001#)(d #07B24A882A745D7638338FDAA18C51035C09D16C5C9EC49195 + 07F6A04300548A5275A42A6905AB40C8E3423A0C72F9A2B7356B6CAB354A41DECAC21A + EB59DF2639B1F5DE277A5F57B862B98EE77BA4DEF40B52B5B1A1F45BAF4529BA9D32BF + 3FB02D71598C3D6113DD580BC23C903B67CF4B1101DBF1894B3F32FCA71D868DD60214 + DBFCC26B12378D4A58DE9B95E3915948DA8EE8FA8070AACEDAE3A9ADBC2B1A1ED7E295 + 17D9462180DED019C4C86629727C64D5AD7F991CE81C83015407AB97E385699B216A1F + 83CD28DFF7BCE0725934F8C16DDFECDB73F739DE8BD503D54EB8BD7C076A87650F73B9 + 7EC22096E6DD49AE61D2DE5E98A17CEA253A7E7C945A1F86A6CB7D7C64EB42284A995E + 594F51A3A142CA240D8558ABC95D7455659D0C3A5A6BF0DCD960ED585B9739DB2C3332 + 141344B707FAE19C2C8498BF0B1F942A723920A69C878F863E11C977383F6DD6984AAA + DD336525CE758898ADF7695A6F2C0271A46BE1FF511C1A680C40A4B41916B42E46072A + 18DD78D53F75962816E3F1E1CE5128EE32CB7A517662553FDAE65812C082A41332CB6A + 245681DACCD7280C25315B871688FD887BCBD9F00905C2491A229194728F0A8D4A8761 + 638D3AD8CB9F94F0D4FAC433293E2EA5F627B7BBBAF07CC0F996E02D99D96AAE4D648F + DED56D2E099E22E0C951CC12003519FC14048BAC0F4D63EC5D5F1C401E648269#)(p + #00EA4F2114BF4B90840FCB273263999FBFF30D49627FB5F8825A897AC3139F59B78B + 869335FE074BC43CF5E7C75F4E31A257DF93AB67DA3B68BCA37F7EF68372D3A661FBF3 + D720419FD301AE4FACAB248227A8C47D97B6D283540A9A666530F1F9D5BA0CC97FD5EE + C219DA21D510BA4D2D604B18ECE111269D18D7E8B495012AFB6966496EE3DA0AC8F98F + B11A0D68C24DA486CD386B14A8760CE8332C2694A5172DC3D008B849725B70C5EDF116 + 4EE97F095CC2382827E0B122177C6667390020AAAC528B9363D3680745B4BA70394A46 + 14520BA4F67AD5935880C1CDADC1EA53D4467A600C8645441ED6FE6C2A0474A15A0E2A + B19D9131E62469C83C48D59C87#)(q #00FF416AAC1AE5E6533B487A02F2CCEDA9C3BF + 4AF70CFAB7F41620F752A37298A0B2CA271AAAE19D603B935DAA8AEFB37863BCCCC6F6 + 37D8999678DDC74D422938E5174B78AD7403AFFB5E933C25B1141863E3DDD59FE564B7 + AF9EF1029C650EBC2359A92D860BB76890C0CDF8C130E5E0C29345D46067BE102468FA + 8E19FBC85DFE0838E2980D6D9ED537E27D3943965BFC7E9E838A7D06DE270313DE3F56 + CFA0685AEFC521B20229F3EDEE3B2E7FFDE75801DD20389EBB63A92DA3AF0B9FB415C3 + 712FDFE514D7448A64A9B8590F9F7DFD8AF71F4F8F9DA91E8448CAD09C160528D6C42C + D36647E44F9CAA29BFB28D7868C9A26F13F62E2ECBB8B0C8B3D9F905#)(u + #00D4A453B0BCC55A6FC0E7D9682B5569AA22CEFC3A2ACAC2635EAB544365C36B34AA + 0D142C21BB5234EE20E5BE3E1BB8D3932DD95818277D4DDB683757F60846A2F16965A1 + ED5C1D9EA8210F68EF8552ACD9F3B63ACEB727DB95FA0E001DC924A3F5D9C299432EC3 + 8328B4608583605DA61A046DC9986D3D23FF682313810C94A342BA654D185CC0E06473 + F353152D8BB877E84FBBB754F82F06DD06ACAA3996AE8359D3CD26B95BC43F61ECB428 + 57CEC8CA7E99CAAC884167BC948820C9BB2EF178F1A661B05A58288A2E6E47CE8EDBC5 + 0637D59EB9FD90B5F673B5372D4419F57651FE9BE71A370D30FA822DE2B3C7D9DA5097 + 83A7A6BBDBD7A4CD0891541BBD#))) diff --git a/.gnupg/pubring.kbx b/.gnupg/pubring.kbx new file mode 100644 index 0000000..849f377 Binary files /dev/null and b/.gnupg/pubring.kbx differ diff --git a/.gnupg/trustdb.gpg b/.gnupg/trustdb.gpg new file mode 100644 index 0000000..a8590cf Binary files /dev/null and b/.gnupg/trustdb.gpg differ diff --git a/.lesshst b/.lesshst new file mode 100644 index 0000000..4d1c30b --- /dev/null +++ b/.lesshst @@ -0,0 +1 @@ +.less-history-file: diff --git a/.local/share/mc/filepos b/.local/share/mc/filepos new file mode 100644 index 0000000..ccdc986 --- /dev/null +++ b/.local/share/mc/filepos @@ -0,0 +1,68 @@ +/.data/nfs/repos/Mikrotiks/ros.vados.ru.git/config 3;23;52 +/var/www/ros.vados.ru/Mikrotiks/backups/.git/config 2;35;35 +/.data/nfs/repos/Mikrotiks/backups.git/config 1;0;0 +/var/www/ros.vados.ru/.git/config 6;0;92 +/var/www/ros.vados.ru/Mikrotiks/.gitconfig 1;0;0 +/www/ros.vados.ru/Mikrotiks/.gnupg/gpg-agent.conf 3;0;50 +/www/ros.vados.ru/.git/config 2;35;35 +/var/www/ros.vados.ru/Mikrotiks/gpg_vados-dev.asc 107;0;6687 +/var/www/ros.vados.ru/Mikrotiks/.ssh/authorized_keys 6;0;2699 +/var/www/ros.vados.ru/Mikrotiks/.bashrc 122;1;3857 +/var/www/ros.vados.ru/Mikrotiks/.gnupg/gpg-agent.conf 2;22;40 +/var/www/ros.vados.ru/Mikrotiks/.bin/ros-diff.sh 407;1;10786 +/var/www/ros.vados.ru/Mikrotiks/.bin/test.sh 13;22;257 +/var/www/ros.vados.ru/.git/COMMIT_EDITMSG 1;0;0 +/var/www/ros.vados.ru/Mikrotiks/.gitignore 8;10;72 +/var/www/ros.vados.ru/Mikrotiks/.bin/logs/ros-diff.log 1;0;0 +/var/www/ros.vados.ru/Mikrotiks/.bin/logs/MikroNUC.log 56;0;3896 +/var/www/ros.vados.ru/Mikrotiks/.bin/bash-progress-indicator/spinner.sh 79;1;1572 +/var/www/ros.vados.ru/Mikrotiks/.bin/logs/MikroYellow.log 467;0;36840 +/var/www/ros.vados.ru/Mikrotiks/.bin/logs/MikroMaster.log 458;0;38628 +/var/www/ros.vados.ru/html/ros-deploy/ROSdeploy 85;0;2797 +/var/www/ros.vados.ru/html/ros-deploy/ros-deploy.sh 1;0;0 +/var/www/ros.vados.ru/Mikrotiks/.bin/ros-conf/sync-script.sh 1;0;0 +/var/www/ros.vados.ru/Mikrotiks/.bin/ros-conf/setup-ssh-keys.sh 6;21;119 +/var/www/ros.vados.ru/Mikrotiks/backups/.git/hooks/pre-commit.sample 1;0;0 +/var/www/ros.vados.ru/Mikrotiks/backups/.git/hooks/pre-push.sample 1;0;0 +/var/www/ros.vados.ru/Mikrotiks/backups/.gitignore 2;0;5 +/var/www/ros.vados.ru/Mikrotiks/.bak/.git/config 2;35;35 +/var/www/ros.vados.ru/Mikrotiks/.profile 23;0;675 +/var/www/ros.vados.ru/Mikrotiks/.ssh/id_rsa.mikro_bak.amster-nuc.pub 1;395;395 +/var/www/ros.vados.ru/Mikrotiks/.ssh/id_rsa.pub 1;397;397 +/var/www/ros.vados.ru/Mikrotiks/.ssh/id_rsa.mikro_bak.pub 1;384;384 +/var/www/ros.vados.ru/Mikrotiks/.ssh/known_hosts 5;0;2002 +/var/www/ros.vados.ru/Mikrotiks/.ssh/id_rsa 28;0;1831 +/var/www/ros.vados.ru/Mikrotiks/.ssh/git@amster-nuc_rsa 50;0;3381 +/var/www/ros.vados.ru/Mikrotiks/.ssh/git@amster-nuc_rsa.pub 2;0;740 +/var/www/ros.vados.ru/Mikrotiks/oxidized/run.sh 13;34;371 +/var/www/ros.vados.ru/Mikrotiks/backups/MikroNUC/20260222/20260222002006-Config.rsc 160;18;7841 +/tmp/crontab.JDTt67 2;0;62 +/var/www/ros.vados.ru/Mikrotiks/.bin/get_backups.diff 1;0;0 +/var/www/ros.vados.ru/Mikrotiks/.config/.mikrotiks 4;0;141 +/var/www/ros.vados.ru/Mikrotiks/backups/MikroNUC/history/20260220021857/ConfExportDiff.rsc 1;0;0 +/var/www/ros.vados.ru/Mikrotiks/.bin/scripts/mktmpfs.rsc 2;18;33 +/var/www/ros.vados.ru/html/AM-GlobalFunc.rsc 1023;6;39628 +/var/www/ros.vados.ru/html/routeros-mkdir/create_mkdir_function.rsc 1;0;0 +/var/www/ros.vados.ru/Mikrotiks/.bin/ros-deploy/README.md 167;0;6781 +/var/www/ros.vados.ru/Mikrotiks/.bin/ros-deploy/ros-deploy.sh 65;0;1923 +/var/www/ros.vados.ru/Mikrotiks/.bin/ros-deploy.sh 1;0;0 +/var/www/ros.vados.ru/Mikrotiks/.mikrotiks 1;20;20 +/var/www/ros.vados.ru/Mikrotiks/backups/tmp/log.txt 1;0;0 +/var/www/ros.vados.ru/html/routeros-config/setup-ssh-keys.sh 1;0;0 +/var/www/ros.vados.ru/Mikrotiks/.bin/log.txt 1;0;0 +/var/www/ros.vados.ru/Mikrotiks/.bin/MikroNUC-config-export-current.rsc 2;0;42 +/var/www/ros.vados.ru/Mikrotiks/.bin/tmp/log.txt 1;0;0 +/var/www/ros.vados.ru/Mikrotiks/.bin/MikroMaster-config-export-current.rsc 1;0;0 +/var/www/ros.vados.ru/Mikrotiks/.bin/get_backups.sh 64;40;2017 +/var/www/ros.vados.ru/Mikrotiks/backups/10.30.30.81/18-02-2026.log.txt 1;0;0 +/var/www/ros.vados.ru/Mikrotiks/backups/10.30.30.10/18-02-2026.log.txt 1;0;0 +/var/www/ros.vados.ru/Mikrotiks/.ssh/mikro_bak_rsa@10.30.30.81.pub 1;402;402 +/var/www/ros.vados.ru/Mikrotiks/.ssh/@10.30.30.81.pub 1;0;0 +/var/www/ros.vados.ru/Mikrotiks/.ssh/mikro_bak_rsa.pub 1;745;745 +/home/vados/.gitconfig 1;0;0 +/home/vados/.bashrc 97;0;2958 +/home/runner/.ssh/authorized_keys 1;742;742 +/home/Mikrotiks/.ssh/mikro_bak_rsa.pub 1;397;397 +/var/www/ros.vados.ru/Mikrotiks/.ssh/MikroNUC_rsa_pub.pem 1;0;0 +/var/www/ros.vados.ru/Mikrotiks/.ssh/MikroNUC_rsa.pem 1;0;0 +/var/www/ros.vados.ru/Mikrotiks/.bash_history 1;0;0 diff --git a/.local/share/mc/history b/.local/share/mc/history new file mode 100644 index 0000000..821c9e1 --- /dev/null +++ b/.local/share/mc/history @@ -0,0 +1,210 @@ +[input-def] +0=* + +[input-1] +0=/var/www/ros.vados.ru/Mikrotiks/.bin/logs + +[input-2] +0=/var/log/Mikrotiks + +[inpmc.fm.mkdir] +0=10.30.30.81 +1=tmp +2=scripts +3=.bak +4=oxidized +5=.ssh +6=test + +[name] +0= + +[ignoredirs] +0= + +[start] +0= +1=. + +[mc.shared.search] +0=set MkD +1=carkee +2=vers +3=version +4=version= +5=GIT_PROTOCOL + +[save-as] +0=/var/www/ros.vados.ru/Mikrotiks/.bin/ros-diff.sh + +[cmdline] +0=chmod +x get_backups.sh +1=git clone https://github.com/tarikin/ros-deploy.git +2=vigr +3=passwd mikro_bak +4=git config --global amster-dev +5=git config --global init.defaultBranch main +6=git config core.repositoryformatversion 0 +7=git config core.filemode true +8=ls -la . +9=ping vados-nuc +10=git remote add origin git@vados-nuc:/d/.bak/Mikrotiks/ba +11=git add . +12=git fetch origin +13=cd ~ +14=main.sh spinner 1 +15=1 +16=` +17=git init +18=cat config +19= + +[Dir Hist New Right Panel] +0=/var/www/ros.vados.ru/html/routeros-config +1=/var/www/ros.vados.ru/html/routeros-mkdir +2=/var/www/ros.vados.ru/Mikrotiks/.bin/ros-deploy/.git +3=/var/www/ros.vados.ru/Mikrotiks/.bin/ros-deploy +4=/var/www/ros.vados.ru/Mikrotiks/backups/MikroNUC/20260220013655 +5=/var/www/ros.vados.ru/Mikrotiks/backups/MikroNUC/20260219204655/history +6=/var/www/ros.vados.ru/Mikrotiks/backups/MikroNUC/20260219204655 +7=/var/www/ros.vados.ru/Mikrotiks/backups/MikroNUC/20260219204148 +8=/var/log/Mikrotiks +9=/var/www/ros.vados.ru/Mikrotiks/backups/MikroNUC/history/20260220021857 +10=/var/www/ros.vados.ru/Mikrotiks/backups/MikroNUC/history/20260220021234 +11=/var/www/ros.vados.ru/Mikrotiks/backups/MikroNUC/20260220021857 +12=/var/www/ros.vados.ru/Mikrotiks/backups/MikroMaster\r/20260220023629 +13=/var/www/ros.vados.ru/Mikrotiks/backups/MikroMaster\r/history/20260220023629 +14=/var/www/ros.vados.ru/Mikrotiks/backups/MikroMaster\r/history +15=/var/www/ros.vados.ru/Mikrotiks/backups/MikroMaster\r/tmp +16=/var/www/ros.vados.ru/Mikrotiks/backups/MikroMaster\r +17=/var/www/ros.vados.ru/Mikrotiks/backups/MikroMaster/20260220035103 +18=/var/www/ros.vados.ru/Mikrotiks/backups/MikroMaster/history/20260220035103 +19=/var/www/ros.vados.ru/Mikrotiks/backups/MikroNUC/20260220035049 +20=/var/www/ros.vados.ru/Mikrotiks/backups/history +21=/var/www/ros.vados.ru/Mikrotiks/backups/MikroNUC/history/20260220 +22=/var/www/ros.vados.ru/Mikrotiks/backups/MikroNUC/history +23=/var/www/ros.vados.ru/Mikrotiks/backups/MikroNUC/20260220 +24=/var/www/ros.vados.ru/Mikrotiks/backups/MikroMaster/20260220 +25=/var/www/ros.vados.ru/Mikrotiks/backups/MikroMaster/history/20260220 +26=/var/www/ros.vados.ru/Mikrotiks/backups/MikroMaster/history +27=/var/www/ros.vados.ru/html/.bak +28=/var/www/ros.vados.ru/Mikrotiks/.config +29=/var/www/ros.vados.ru/Mikrotiks/.bin +30=/var/www/ros.vados.ru/Mikrotiks/.bak +31=/var/www/ros.vados.ru/Mikrotiks/.ssh +32=/opt/docker/carkeeperbot +33=/opt/docker/oxidized +34=/opt/docker +35=/opt +36=/www/ros.vados.ru/Mikrotiks/.bak +37=/www/ros.vados.ru/Mikrotiks +38=/ +39=/var/www/ros.vados.ru/html/ros-deploy +40=/var/www/ros.vados.ru/html +41=/var +42=/var/log +43=/var/www/ros.vados.ru/.vscode +44=/var/www +45=/var/www/ros.vados.ru/Mikrotiks/backups/MikroYellow/20260228 +46=/var/www/ros.vados.ru/Mikrotiks/backups/MikroYellow/history/20260228 +47=/var/www/ros.vados.ru/Mikrotiks/backups/MikroYellow/history +48=/var/www/ros.vados.ru/Mikrotiks/backups/MikroYellow/tmp +49=/var/www/ros.vados.ru/Mikrotiks/backups/MikroMaster/tmp +50=/var/www/ros.vados.ru/Mikrotiks/backups/MikroMaster +51=/var/www/ros.vados.ru/Mikrotiks/backups/MikroNUC/20260228 +52=/var/www/ros.vados.ru/Mikrotiks/backups/MikroYellow +53=/var/www/ros.vados.ru/Mikrotiks/backups +54=/var/www/ros.vados.ru/Mikrotiks/backups/MikroNUC/tmp +55=/var/www/ros.vados.ru/Mikrotiks/backups/MikroNUC +56=/var/www/ros.vados.ru +57=/www/ros.vados.ru +58=/www +59=/var/www/ros.vados.ru/Mikrotiks + +[Dir Hist New Left Panel] +0=/var/www/ros.vados.ru/Mikrotiks/.ssh/10.30.30.81 +1=/var/www/ros.vados.ru/Mikrotiks/.bin/tmp +2=/var/www/ros.vados.ru/Mikrotiks/.bin/ros-deploy +3=/var/www/ros.vados.ru/Mikrotiks/.bin/v1.2.1.tar.gz/utar://ros-deploy-1.2.1 +4=/var/www/ros.vados.ru/Mikrotiks/.bin/v1.2.1.tar.gz/utar:// +5=/var/www/ros.vados.ru/Mikrotiks/backups/MikroNUC/20260220035049 +6=/var/www/ros.vados.ru/Mikrotiks/.bak +7=/var/www/ros.vados.ru/Mikrotiks/oxidized/oxidized-config +8=/var/www/ros.vados.ru/Mikrotiks/oxidized/config +9=/var/www/ros.vados.ru/Mikrotiks/oxidized +10=/var/www/ros.vados.ru/Mikrotiks/backups/MikroMaster +11=/var/www/ros.vados.ru/Mikrotiks/backups/.ssh +12=/var/www/ros.vados.ru/Mikrotiks/backups/MikroYellow/history/20260220 +13=/var/www/ros.vados.ru/Mikrotiks/backups/MikroYellow/history +14=/var/www/ros.vados.ru/Mikrotiks/test/backup_configs/MikroMaster/20260224 +15=/var/www/ros.vados.ru/Mikrotiks/test/backup_configs/MikroMaster/20260221 +16=/var/www/ros.vados.ru/Mikrotiks/backups/MikroYellow/20260220 +17=/var/www/ros.vados.ru/Mikrotiks/test/backup_configs/MikroMaster/20260220 +18=/var/www/ros.vados.ru/Mikrotiks/test/backup_configs/MikroMaster +19=/var/www/ros.vados.ru/Mikrotiks/test/backup_configs +20=/var/www/ros.vados.ru/Mikrotiks/test/backups/MikroMaster/20260220 +21=/var/www/ros.vados.ru/Mikrotiks/test/backups/MikroMaster/20260221 +22=/var/www/ros.vados.ru/Mikrotiks/test/backups/MikroMaster/20260224 +23=/var/www/ros.vados.ru/Mikrotiks/test/backups/MikroMaster/history +24=/var/www/ros.vados.ru/Mikrotiks/test/backups/MikroMaster +25=/var/www/ros.vados.ru/Mikrotiks/test/backups +26=/var/www/ros.vados.ru/Mikrotiks/.config +27=/var/www/ros.vados.ru/Mikrotiks/.local/share +28=/var/www/ros.vados.ru/Mikrotiks/.local +29=/var/www/ros.vados.ru/Mikrotiks/.ssh +30=/var/www/ros.vados.ru/Mikrotiks/.cache +31=/var/www/ros.vados.ru/Mikrotiks/backups/.git/hooks +32=/var/www/ros.vados.ru/Mikrotiks/.bin/ros-conf +33=/var/www/ros.vados.ru/html/ros-deploy +34=/var/www/ros.vados.ru/html +35=/var/www/ros.vados.ru/Mikrotiks/backups/MikroYellow/tmp +36=/var/www/ros.vados.ru/Mikrotiks/backups/MikroYellow +37=/var/www/ros.vados.ru/Mikrotiks/.bin/scripts +38=/var/www/ros.vados.ru/Mikrotiks/backups/MikroNUC/tmp +39=/var/www/ros.vados.ru/Mikrotiks/backups/MikroNUC +40=/var/www/ros.vados.ru/Mikrotiks/.bin/logs +41=/var/www/ros.vados.ru/Mikrotiks/.bin/bash-progress-indicator +42=/var/www/ros.vados.ru/Mikrotiks/upload +43=/var/www/ros.vados.ru/Mikrotiks/test +44=/var/www/ros.vados.ru/Mikrotiks/backups/.git +45=/var/www/ros.vados.ru/.git +46=/var/www +47=/var/www/ros.vados.ru/Mikrotiks/backups +48=/var/www/ros.vados.ru +49=/var/www/ros.vados.ru/Mikrotiks/.gnupg +50=/www/ros.vados.ru/.git +51=/www/ros.vados.ru/Mikrotiks +52=/www/ros.vados.ru/Mikrotiks/.gnupg +53=/www/ros.vados.ru +54=/var/www/ros.vados.ru/Mikrotiks +55=/var/www/ros.vados.ru/Mikrotiks/.bin + +[input2] +0=/var/www/ros.vados.ru/Mikrotiks/.bin/ros-conf/ +1=/var/www/ros.vados.ru/Mikrotiks/.ssh/ +2=/var/www/ros.vados.ru/Mikrotiks/.ssh/10.30.30.81 +3=id_rsa +4=id_rsa.pub +5=/var/www/ros.vados.ru/Mikrotiks/.bin/ +6=/var/www/ros.vados.ru/Mikrotiks/.bin/scripts/ +7=mktmpfs.rsc +8=ROSdeploy +9=/var/www/ros.vados.ru/Mikrotiks/.bin/ros-deploy/ +10=ros-diff.sh +11=/var/www/ros.vados.ru/Mikrotiks/.bak +12=mikro_bak_rsa@10.30.30.86.pub +13=/var/www/ros.vados.ru/Mikrotiks/.config/ +14=git@amster-nuc_rsa +15=git@amster-nuc_rsa.pub +16=id_rsa.mikro_bak +17=id_rsa.mikro_bak.pub +18=id_rsa.mikro_bak.amster-nuc.pub +19=id_rsa.mikro_bak.amster-nuc +20=/var/www/ros.vados.ru/Mikrotiks/backups/.ssh +21=/var/www/ros.vados.ru/Mikrotiks/.ssh +22=/www/ros.vados.ru/Mikrotiks/.bak/ +23=test.sh +24=/var/www/ros.vados.ru/Mikrotiks/ +25=/var/www/ros.vados.ru/Mikrotiks/backups/MikroNUC/ +26=/var/www/ros.vados.ru/ +27=Mikrotiks.git diff --git a/.profile b/.profile new file mode 100644 index 0000000..52115e0 --- /dev/null +++ b/.profile @@ -0,0 +1,31 @@ +# ~/.profile: executed by the command interpreter for login shells. +# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login +# exists. +# see /usr/share/doc/bash/examples/startup-files for examples. +# the files are located in the bash-doc package. + +# the default umask is set in /etc/profile; for setting the umask +# for ssh logins, install and configure the libpam-umask package. +#umask 022 + +# if running bash +if [ -n "$BASH_VERSION" ]; then + # include .bashrc if it exists + if [ -f "$HOME/.bashrc" ]; then + . "$HOME/.bashrc" + fi +fi + +# set PATH so it includes user's private bin if it exists +if [ -d "$HOME/bin" ] ; then + PATH="$HOME/bin:$PATH" +fi + +if [ -d "$HOME/.bin" ] ; then + PATH="$HOME/.bin:$PATH" +fi + +# set PATH so it includes user's private bin if it exists +if [ -d "$HOME/.local/bin" ] ; then + PATH="$HOME/.local/bin:$PATH" +fi diff --git a/.repo_.gitconfig.json b/.repo_.gitconfig.json new file mode 100644 index 0000000..5d757aa --- /dev/null +++ b/.repo_.gitconfig.json @@ -0,0 +1,20 @@ +{ + "user.name": [ + "vados-dev" + ], + "user.email": [ + "vados@vados.ru" + ], + "color.ui": [ + "auto" + ], + "safe.directory": [ + "/var/www/ros.vados.ru/Mikrotiks" + ], + "init.defaultbranch": [ + "android-9.0" + ], + "core.autocrlf": [ + "false" + ] +} \ No newline at end of file diff --git a/.selected_editor b/.selected_editor new file mode 100644 index 0000000..dbc0072 --- /dev/null +++ b/.selected_editor @@ -0,0 +1,2 @@ +# Generated by /usr/bin/select-editor +SELECTED_EDITOR="/usr/bin/mcedit" diff --git a/.ssh/authorized_keys b/.ssh/authorized_keys new file mode 100644 index 0000000..c5dddec --- /dev/null +++ b/.ssh/authorized_keys @@ -0,0 +1,5 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCtYPqhMLWEhFjiZKUCWBVxoEtNRkZvCMjfJ+F2jqJl2SVVCay92wuItwjibkmVVlXMdokemr8oBTqvlL+tXghJbOselR00HPyvwdeMVE+EGxtOXGwSHDTYSaYDl7OkKhURnJ4N+cLrxuuljXT26L9btpayJzsyqy8i6hNbcgg0rLAcgFwrDW05cUgWOTtSD8OIzE0BRGCFNTYuEz6cI6e+XeqZa0RILhbEYjznRo5OYx7xyCYI2cYJm8PKpLSXWjZGHsej1e1wqBaxSoAUO4ja7AE1Dg3oIZ8ac9NeNk0Zgn9CLPZNb9qRYBgf1eTkpg+ll0IDUkzFY6LA7vA2WfiGPZkguurFczr1K9f1RtfWc2QDVvyXytnMzAHaGBC/zUpxvJBcL1vHzRwBREWUfcBNSP44QMkJ10adPupDmATZAVkaoqKEyIi2opN+obBUL1tRd8PlKV1B2mw5brqpZQuxAhbSTRVAnc5fOQjs6r/8q4pXRN7JRSgjwk/+7gLmQE0S7hJ82PkW1mLzdMxHbNqFouvFh6vTIGC0szuP8p3F6IChDPEy9p3FfffF6B4jqLHJXiANzszwG2aReLl6mivRmO6ZcyuahmekdqytzjihgtmYBO8wqU/kGvU38xtbI6OTKBXom2kGnEoNd4PlBNVXlsn1al2jyKzPKGI3xlA9FQ== git@amster-nuc +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC7lpAKxEKB3RexZlN1TNRnGOVmZi0fhM8DUiW+mKdcDtGBmAOHTHOuhFCofpDXyGLbeOT3FOTumPNbM3RLssY3t/GDxxaJUfQhbUbQJgEwHmlP2ianJ4hSqtoJhnu3jCn7y8LnEhd0I1nCYF4D/XUTodmglKR/FJujCRoqbYLuqNPozwUxMgCTb+OYpmaEhILE9hXD6qM06CMnOFtE2Xg+CaRRmsv7nuu8Z8kMp/239lUj9AnTgNMoI73wxL2HR4M+WzrCiiTRWExJWyIH+WTjrY40iQY6vYD+BKXN6B9bl03MxwdhlYYspItX/u2b80/V7oy0lpe4uC/ZdkWrpXdPaGFCdOehfn//jnPryguSF8aXBRsHVCOl0QB/yb84+JbS494Kkkr7g4S16qtxQ6JP52tMc+7SLEufZ67pdKyz9JpQLJyMpKTJtK0y9wMaqQoIn0/9Yb+W3XnAepr5zhxercdEw6dpFgJdKlnsqINDlJ3VU+b07uk1nt/fuIksS3v8gZkFvE8OV5lgTD6/gOPGGwBD73SyY/sVVwHEoMr3B+647nilfiiC/VOTfzk5VOv6R2apbYZCN2phI6YQvk6bhQGDrl61Lne2mXioCLbDW0rTRabdQrPOQTml+hM3WIudyvt7nKajQcaUnwIw3yBFNc77cGuHLrxjiaaZARntlw== git@github.com:vados-dev +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCcieLidti9XSkOD3EkZyigI+GGLBhe8bBhPuXI0afyxnuagbMz3vY3tzyMaQ7iEi9NGgUE2BnPaxp/04DQ9/fcjwlCeuYUq0Kk7ZP4XtVSsYuDPDcx/pcLaIUum/G6bZpDA9Hmq5B3zPDbbgq0ujCIAAusV8jAqgVw7LZJM9NejpvMLd3VAw6HrwQIptIyp+5w+6hQd2VcOVjcdprFQnZeLS0DzfY7557bKLomxXncbyNVd8NqB3YT1+m+P5+3SyQe0K8FKnwiIWvh6L8CpL1f40Dke/BOoKg5N/1LO7kpZP27yVG7gqKW+d9/aE0xGa+uLUKcSHyEqtIJ+D/oAg8f mikro_bak@10.30.30.81 +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCcieLidti9XSkOD3EkZyigI+GGLBhe8bBhPuXI0afyxnuagbMz3vY3tzyMaQ7iEi9NGgUE2BnPaxp/04DQ9/fcjwlCeuYUq0Kk7ZP4XtVSsYuDPDcx/pcLaIUum/G6bZpDA9Hmq5B3zPDbbgq0ujCIAAusV8jAqgVw7LZJM9NejpvMLd3VAw6HrwQIptIyp+5w+6hQd2VcOVjcdprFQnZeLS0DzfY7557bKLomxXncbyNVd8NqB3YT1+m+P5+3SyQe0K8FKnwiIWvh6L8CpL1f40Dke/BOoKg5N/1LO7kpZP27yVG7gqKW+d9/aE0xGa+uLUKcSHyEqtIJ+D/oAg8f mikro_bak@10.30.30.10 +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCcieLidti9XSkOD3EkZyigI+GGLBhe8bBhPuXI0afyxnuagbMz3vY3tzyMaQ7iEi9NGgUE2BnPaxp/04DQ9/fcjwlCeuYUq0Kk7ZP4XtVSsYuDPDcx/pcLaIUum/G6bZpDA9Hmq5B3zPDbbgq0ujCIAAusV8jAqgVw7LZJM9NejpvMLd3VAw6HrwQIptIyp+5w+6hQd2VcOVjcdprFQnZeLS0DzfY7557bKLomxXncbyNVd8NqB3YT1+m+P5+3SyQe0K8FKnwiIWvh6L8CpL1f40Dke/BOoKg5N/1LO7kpZP27yVG7gqKW+d9/aE0xGa+uLUKcSHyEqtIJ+D/oAg8f mikro_bak@10.30.30.86 diff --git a/.ssh/id_rsa b/.ssh/id_rsa new file mode 100644 index 0000000..38ba931 --- /dev/null +++ b/.ssh/id_rsa @@ -0,0 +1,27 @@ +-----BEGIN OPENSSH PRIVATE KEY----- +b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABFwAAAAdzc2gtcn +NhAAAAAwEAAQAAAQEAnIni4nbYvV0pDg9xJGcooCPhhiwYXvGwYT7lyNGn8sZ7moGzM972 +N7c8jGkO4hIvTRoFBNgZz2saf9OA0Pf33I8JQnrmFKtCpO2T+F7VUrGLgzw3Mf6XC2iFLp +vxum2aQwPR5quQd8zw224KtLowiAALrFfIwKoFcOy2STPTXo6bzC3d1QMOh68ECKbSMqfu +cPuoUHdlXDlY3HaaxUJ2Xi0tA832O+ee2yi6JsV53G8jVXfDagd2E9fpvj+ft0skHtCvBS +p8IiFr4ei/AqS9X+NA5HvwTqCoOTf9Szu5KWT9u8lRu4Kilvnff2hNMRmvri1CnEh8hKrS +Cfg/6AIPHwAAA9B2kgn4dpIJ+AAAAAdzc2gtcnNhAAABAQCcieLidti9XSkOD3EkZyigI+ +GGLBhe8bBhPuXI0afyxnuagbMz3vY3tzyMaQ7iEi9NGgUE2BnPaxp/04DQ9/fcjwlCeuYU +q0Kk7ZP4XtVSsYuDPDcx/pcLaIUum/G6bZpDA9Hmq5B3zPDbbgq0ujCIAAusV8jAqgVw7L +ZJM9NejpvMLd3VAw6HrwQIptIyp+5w+6hQd2VcOVjcdprFQnZeLS0DzfY7557bKLomxXnc +byNVd8NqB3YT1+m+P5+3SyQe0K8FKnwiIWvh6L8CpL1f40Dke/BOoKg5N/1LO7kpZP27yV +G7gqKW+d9/aE0xGa+uLUKcSHyEqtIJ+D/oAg8fAAAAAwEAAQAAAQA4aum+vR64gQ7+5knc +2OEndkcd2F6gOXNcWRLwIb/qG+cIdJ5ln4IV6pCD+olGqU8q9qnAaTJEM1HFqDDRH83RTC +wGLc0mveKzFn0yEtvHhf3GOrmZ5ywBDJaTidjBXCcw5/uKq2LSCqb0LuDk6gX7vih24NyV +s7FqVaYNFASmGyc/hFObYC9wyJ/Shntb5ofI6tNpZDFTZCjct9XccdSYAjCz8YNVVCzy3i +s7TKhSGeLR6cLNFDh55/XS4otvG4ZPTd1RfEHf54buwqu4TMghoDWVmSHgtsSmgNWsQaU3 +WGNw+BxKqV8IPdjCBFXd7XN8XknuJtGzGMUn95BrWpGhAAAAgCSXDG+5lQqmKXUlLG25OR +Y3QVrN0it8moXO/3v1kf3gsRj0JMqobJI7h5t81+XCdk4ZFiXTIombHR1JlYVRCJOtvwxV +ZDl+0wXJP9fgxOKdijKnCkU0lcPDOF2QOXGawNRddl+rCDM5XmhSdGPLlcxs6ulMTcRy4j +dqEOON6UfOAAAAgQDTfbnTGZMsE3VU9DwEDnEHPHehdyhHh2e2DB26+xGo+9o9HhGOyxVZ +P6E1NbLOgqc9KfWNJJD7YX9VVgwdQySoZNXDmXVfo4R3oJeSvU12iaghhQldbs12Dlv5L7 +nk8J0XnfXNMZ2YpSsoSRTjwnGzzlEHzZRZwJ/riEAXWbEDwwAAAIEAvXuLjH2/c0lC/41k +BZByV/j2sS5JD52zdaFjYYrmAcctKzmDcilWYy9JSOzTVae0rwbpjtqx2y12zLw3K2H/JY +2gyCNruLGq+EMe20FNu/6AlS/cGc/+fay6rPS2qRMiCwnjgFjB8qV/G8r4wwTAgaRygo1R +rrtukQGlgyz03XUAAAAVbWlrcm9fYmFrQDEwLjMwLjMwLjgxAQIDBAUG +-----END OPENSSH PRIVATE KEY----- diff --git a/.ssh/id_rsa.mikro_bak b/.ssh/id_rsa.mikro_bak new file mode 100644 index 0000000..a3d5a90 --- /dev/null +++ b/.ssh/id_rsa.mikro_bak @@ -0,0 +1,27 @@ +-----BEGIN OPENSSH PRIVATE KEY----- +b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABFwAAAAdzc2gtcn +NhAAAAAwEAAQAAAQEAssaL3TkpCKyHvHcy3D4O/0dTNx2AC7zo//qVV0wR1DZ3Na15EU/u +hAl1RxuXjTROze4a2AfOH7dDIaS6CEIGUEPWbWb6Y35ONXhYGBFDE670Q/JhxwRJxPdh3L +ar1lpGq/uSYV5T5/nAlFJqZeD7YumxI8wM7gD+lv2FmN+Trst/cNi8iXFfsE5t2CR2ayl1 +ZdILdzG/DkRlwSjH1cHTViGh7Ep6nfGDESsmh7xhiynimVzTEae29R6igERx98tVAh+D1R +b+X4VMU4sAbrVGL9YV8eMFaXSv9gzYhU92DNRrBkKo9Ji3oSr3bBRTwNCmFUH8IYXMTi6s +oAKglWtXZwAAA8itSy5trUsubQAAAAdzc2gtcnNhAAABAQCyxovdOSkIrIe8dzLcPg7/R1 +M3HYALvOj/+pVXTBHUNnc1rXkRT+6ECXVHG5eNNE7N7hrYB84ft0MhpLoIQgZQQ9ZtZvpj +fk41eFgYEUMTrvRD8mHHBEnE92HctqvWWkar+5JhXlPn+cCUUmpl4Pti6bEjzAzuAP6W/Y +WY35Ouy39w2LyJcV+wTm3YJHZrKXVl0gt3Mb8ORGXBKMfVwdNWIaHsSnqd8YMRKyaHvGGL +KeKZXNMRp7b1HqKARHH3y1UCH4PVFv5fhUxTiwButUYv1hXx4wVpdK/2DNiFT3YM1GsGQq +j0mLehKvdsFFPA0KYVQfwhhcxOLqygAqCVa1dnAAAAAwEAAQAAAQAS/y4Vj+FgXpT93dy1 +spJ9ZeLd1HCqzqQjr0j3QcoTNsZsGcbnpArAVRD1QWVVR92n3ElV815f2GV1yb9K6VkqZk +r+zRaGRAGjhOo3hH4QNWMXZUYmk7oTCAaKIY8Y8/bWh6ECX7eiytM/75IGyWVtGVANcb1d +/RUQjlgH6poS1Ld6Va2MemVgS60tZKIPOyLa4B93HlzRE7FXb0m1A1yohaXmi3ZGqjhnil +Fu7MPR8IsLiHYEgLUvKMzFW2U6qRiLPZFoqE/YzvPchK5F4Bv60Cr0UbISeU2mXemkGxI/ +FEvODMV74vkJZJpY1SJ/qLe9uI04M+MLnjfFI6Db4HnBAAAAgEoHpbq4+vvO5oCBQvm1ek +Hnb3K2xQ7c3b3fontYv+YN4wDaw0KYjWPFSjqJSjTcs3UR0HfZCfDjWoDGxJIz4S93EHgs +jnnclUc6XjUhc9toYVyYhrt93kTkbLy2CrBUSujfrh0y73oq63v/jB/YF//hVXaCI2Bmca +MTxt+QxJ8lAAAAgQDYAnFm8bzOWwIR/9NhRyZS+6KfsO5xXNs4toHCoQHHhcmW3cT0OIU3 +WmkDtIMKASZxAVPfsMze/kvfND8A/4zhTeerkt0wC3/clxE0LobMJ/z4zVWaWvnooTVIQ6 +jMZR6IZ5niXQxU1BU7P4mHH5F7oyvKpsKugzhxgCkwuZI1KQAAAIEA099vuFNVN2RCAv4K +On6LzoblX3NpPiCOSeTW6f4C44dTivniuCpLPttFjkRdj3Zxirw5tixoYgqZ3Db89v8Rx8 +yyTouu+tc6DYgb4etAM1fVX3DX4WtJOJDZ6ndLjqraGTutytT+wCjHXwsuxpJsn7IKBxqO +WyCkDpgm2sbFqg8AAAAQbWlrcm9fYmFrQGFtc3RlcgECAw== +-----END OPENSSH PRIVATE KEY----- diff --git a/.ssh/id_rsa.mikro_bak.amster-nuc b/.ssh/id_rsa.mikro_bak.amster-nuc new file mode 100644 index 0000000..4a5d6ba --- /dev/null +++ b/.ssh/id_rsa.mikro_bak.amster-nuc @@ -0,0 +1,27 @@ +-----BEGIN OPENSSH PRIVATE KEY----- +b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABFwAAAAdzc2gtcn +NhAAAAAwEAAQAAAQEAjNqkHXDEE1ixdxV6Xac9G+NqWDtgH3tYam2TwYvqIMCaEy3Vx4Ft +q8EBu292RUZoruqkdb2A5CTmvZse19dUDBSy0eTuznIdi8en2V30QVHMCDs4Hrz/6300Ji +lnGszmLzcSdLGE4i8wBkrk5cm4hlaetQyWJ7b444CGWkZE62uxHTOR5ItKJr/BaVHbi5BK +dk/ZCiHOLNL6aJlSuzcekINXq6gGShutWiu26LFA+DsBj+T0SGv1+vz8RK714Iqa/vkbeb +bSCWTxmEy3WGlN7TJUR7W/RYZidqby2wMaDsfD4nlpKHt+b+5OxclvIz5eA1+qKcmLg86m +4p/LmjZkwwAAA8gFbfDUBW3w1AAAAAdzc2gtcnNhAAABAQCM2qQdcMQTWLF3FXpdpz0b42 +pYO2Afe1hqbZPBi+ogwJoTLdXHgW2rwQG7b3ZFRmiu6qR1vYDkJOa9mx7X11QMFLLR5O7O +ch2Lx6fZXfRBUcwIOzgevP/rfTQmKWcazOYvNxJ0sYTiLzAGSuTlybiGVp61DJYntvjjgI +ZaRkTra7EdM5Hki0omv8FpUduLkEp2T9kKIc4s0vpomVK7Nx6Qg1erqAZKG61aK7bosUD4 +OwGP5PRIa/X6/PxErvXgipr++Rt5ttIJZPGYTLdYaU3tMlRHtb9FhmJ2pvLbAxoOx8PieW +koe35v7k7FyW8jPl4DX6opyYuDzqbin8uaNmTDAAAAAwEAAQAAAP8O2wB0GnCTmccdyCYf +uoO3bUTKCXkZ2Oh6URREVX1b9vRJEYx6fiwS8Ug9fIP8ynBAAn9V66asaTfsx295VDyJCa +XSfVKyc1aqZ2RMiJw6R2Y9eAFzPHvBWnMlkzhMm0+rqyNHK3HYaSGniD6b/ap4gKo8bhdo +GOQnGmcRHlgmfA0iE0nAa2GbLRDCiGJf4nAY9pY5nVkKhiBPA2aRrDySB/9unqJrD0s0Vg +Uvdonz/y9l06s0sjW88JrDOES6rFkdRO3q9tINQ1eWphiX3RTuY2P6zbbHaZ/ZJq4Mo2Lk +OAJb/nKTA8sHK2Uz4UqWqgfYh0Iocp9GTkkIgvqZ0JkAAACAKMzcmjHcBTZWytRhwgTMyJ +oTd55DoWbMiOQSbMbQ7zm39Hf5SN5B3Cyo8P5g3XEx/mqCouh3Gfp+ok3Lkn2vQEZ8rK3q +Rmge18T0KPQ2U9DFVSLurSOKV5+TrhcaQc/NvPAMpJONwF3HPESejSEH1Esu6hFp5LyrLe +yoBVKAnmEAAACBAMGD0RR8GGsiQ0u+5leUm1WOCzunT/+TcrYia7Qc7Xan6uNdTMYJjPQE +TEkNQALsg3AfkUM83EiWOz40oERFL4JZRZHiI8K2G4CEunJaUt3mm/QpmxwstVdYuMVtzn +SadKMhfuKOz9SJvbBz69phx+ZT7zsqc+O3Xv27rxekmRbfAAAAgQC6VdBGKNnoQZKJPHOh +Sb3YohgzTfJNH1Uy5gpzK9A9Tlotit9cVmuHbFiO1twnIxUScDadxbskiUM8JK+VpWPYSo +O3OcTyuspye/QTSlJofWPq2eSnDiKNYm3pJ9GzZRsuPDU+16guO+DAt40LknoUCPQvmdL/ +w6M9pB/+vq5inQAAAA5naXRAYW1zdGVyLW51YwECAwQFBg== +-----END OPENSSH PRIVATE KEY----- diff --git a/.ssh/id_rsa.mikro_bak.amster-nuc.pub b/.ssh/id_rsa.mikro_bak.amster-nuc.pub new file mode 100644 index 0000000..8ee38d5 --- /dev/null +++ b/.ssh/id_rsa.mikro_bak.amster-nuc.pub @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCM2qQdcMQTWLF3FXpdpz0b42pYO2Afe1hqbZPBi+ogwJoTLdXHgW2rwQG7b3ZFRmiu6qR1vYDkJOa9mx7X11QMFLLR5O7Och2Lx6fZXfRBUcwIOzgevP/rfTQmKWcazOYvNxJ0sYTiLzAGSuTlybiGVp61DJYntvjjgIZaRkTra7EdM5Hki0omv8FpUduLkEp2T9kKIc4s0vpomVK7Nx6Qg1erqAZKG61aK7bosUD4OwGP5PRIa/X6/PxErvXgipr++Rt5ttIJZPGYTLdYaU3tMlRHtb9FhmJ2pvLbAxoOx8PieWkoe35v7k7FyW8jPl4DX6opyYuDzqbin8uaNmTD git@amster-nuc diff --git a/.ssh/id_rsa.mikro_bak.pub b/.ssh/id_rsa.mikro_bak.pub new file mode 100644 index 0000000..4cd49f0 --- /dev/null +++ b/.ssh/id_rsa.mikro_bak.pub @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCyxovdOSkIrIe8dzLcPg7/R1M3HYALvOj/+pVXTBHUNnc1rXkRT+6ECXVHG5eNNE7N7hrYB84ft0MhpLoIQgZQQ9ZtZvpjfk41eFgYEUMTrvRD8mHHBEnE92HctqvWWkar+5JhXlPn+cCUUmpl4Pti6bEjzAzuAP6W/YWY35Ouy39w2LyJcV+wTm3YJHZrKXVl0gt3Mb8ORGXBKMfVwdNWIaHsSnqd8YMRKyaHvGGLKeKZXNMRp7b1HqKARHH3y1UCH4PVFv5fhUxTiwButUYv1hXx4wVpdK/2DNiFT3YM1GsGQqj0mLehKvdsFFPA0KYVQfwhhcxOLqygAqCVa1dn git@amster-nuc diff --git a/.ssh/id_rsa.pub b/.ssh/id_rsa.pub new file mode 100644 index 0000000..9222d1b --- /dev/null +++ b/.ssh/id_rsa.pub @@ -0,0 +1,2 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCcieLidti9XSkOD3EkZyigI+GGLBhe8bBhPuXI0afyxnuagbMz3vY3tzyMaQ7iEi9NGgUE2BnPaxp/04DQ9/fcjwlCeuYUq0Kk7ZP4XtVSsYuDPDcx/pcLaIUum/G6bZpDA9Hmq5B3zPDbbgq0ujCIAAusV8jAqgVw7LZJM9NejpvMLd3VAw6HrwQIptIyp+5w+6hQd2VcOVjcdprFQnZeLS0DzfY7557bKLomxXncbyNVd8NqB3YT1+m+P5+3SyQe0K8FKnwiIWvh6L8CpL1f40Dke/BOoKg5N/1LO7kpZP27yVG7gqKW+d9/aE0xGa+uLUKcSHyEqtIJ+D/oAg8f mikro_bak@10.30.30.81 +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCcieLidti9XSkOD3EkZyigI+GGLBhe8bBhPuXI0afyxnuagbMz3vY3tzyMaQ7iEi9NGgUE2BnPaxp/04DQ9/fcjwlCeuYUq0Kk7ZP4XtVSsYuDPDcx/pcLaIUum/G6bZpDA9Hmq5B3zPDbbgq0ujCIAAusV8jAqgVw7LZJM9NejpvMLd3VAw6HrwQIptIyp+5w+6hQd2VcOVjcdprFQnZeLS0DzfY7557bKLomxXncbyNVd8NqB3YT1+m+P5+3SyQe0K8FKnwiIWvh6L8CpL1f40Dke/BOoKg5N/1LO7kpZP27yVG7gqKW+d9/aE0xGa+uLUKcSHyEqtIJ+D/oAg8f mikro_bak@10.30.30.10 diff --git a/.ssh/known_hosts b/.ssh/known_hosts new file mode 100644 index 0000000..a2fcf1d --- /dev/null +++ b/.ssh/known_hosts @@ -0,0 +1,11 @@ +[10.30.30.10]:2222 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDHv+zKADwFHB8DebzFchw4/RkJQRAjDWS7k1DdzCYzLfLsWqXdSc24HDBSLtdlEl9pPY7VevZm+VH1vHU06Ws1MWMC1oNr3UotAeb3qckUGLEvNqsDO5JOVVbHZVkbnwqnSfBIgAPGUNTHOImqV48D/Hi7Oey10e/KvoEKIS+RSaAZ4OkI3IiSG/9fnwVPYrvdjNAkgFUumNFvN8q512MV5W1RZ5ajsZwuBucxf5Bhny/c5pNHCKHrnQdCnn7RKyhZHPRJaPNmFhO3/A5j/LBDt04FGF9LG+gCBCNkUnQpAUiDzxgyvY+wJetXahUCyJ9hLoGTGM4AyxsHfrhJkMs9 +[10.30.30.81]:2222 ssh-rsa AAAAB3NzaC1yc2EAAAABAwAAAQEAv5SiOH3f0f9Ezf8aEfd27McFdJud+JYOJN8LRMmoxAM3SKJ1LI87ZqKNjjW6Fmy2Gs/CqLlh/QEfqQxs7xVfg6XuP2E8J/Oi3o4fgJIWGdwZhlSj4XUvDy47l70a+/j5mYvImseOK+wG+XuSkWqHzUWGMmnlqR8J08s7XygdDDWclj/voimaNlcku3mr8dF4I3xMhUuCkQPZDGZcmChhn/TMlpr9HPFjHf13qt+7xEtNL2UMswCQSfX8W4RPm23x+/Fz8ows7okIANoFkPuPYD/ZjZLWcffnXzWe5C4g+7tA7PUIBxShDN6zs1TUxkAwOgGnjVITqpfZnWPaJPXjRw==ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCcieLidti9XSkOD3EkZyigI+GGLBhe8bBhPuXI0afyxnuagbMz3vY3tzyMaQ7iEi9NGgUE2BnPaxp/04DQ9/fcjwlCeuYUq0Kk7ZP4XtVSsYuDPDcx/pcLaIUum/G6bZpDA9Hmq5B3zPDbbgq0ujCIAAusV8jAqgVw7LZJM9NejpvMLd3VAw6HrwQIptIyp+5w+6hQd2VcOVjcdprFQnZeLS0DzfY7557bKLomxXncbyNVd8NqB3YT1+m+P5+3SyQe0K8FKnwiIWvh6L8CpL1f40Dke/BOoKg5N/1LO7kpZP27yVG7gqKW+d9/aE0xGa+uLUKcSHyEqtIJ+D/oAg8f mikro_bak@10.30.30.81 +[10.30.30.81]:2222 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDQLNHp4kRmUeWA6+o72gnfGHkFKDx1G4Ix4bjeR0etZZqFWNbqtSwrcrltOKKBbLiu7vGf8MDnpGBoT7mDh3MIhxDLDeCxO2oqXTYu43oRA6LoKA4FbtBB1xVo1hp5jx6Xldsnx0RWbOTUl9NtvCqKjzYdenTDSSVrHegiM/H3G2IqJsjcXcGWZ/lDzahdhIfa19+GJH1VxlSi1z0A/m/r5gy5+FonRaI1v0zhHlicQJpSiLTFYpa6sdpbQ8/zXs4zKLargOFejcmeqW6ddO/7LGt6xmi9de+XeEWQMHkANihPeyxTtHyp4gfVCS01f4fLOG081t5FtWBv3lpAfuOb +[10.30.30.86]:2222 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDtvYZKuBJmgUPLMCB9cVmk9fbxLMs31nsif6IkUzvKU5eYNnCjq/wk7LN698gVc7A+ZjugkiTKi4g9zdnhpksCRZa8QHrYVbAyb4ESE9Qw97fZxW+Ty7Q4egndTVpcOfj8P5rR/zPmyKHwKxmZt2PZauZuYYNaYE2wsKSB1IHxY9zEHr2sDxI8HDzAVlGHuEnJ/ME6/UMJPyS5aiVCYuWP8AZg8ZzzVxLcLXElMsZeb9eQwjaeqmHWebGQZEW3UDgjJPYahW3ZOISb0xuyZsjMHWjk/ce2H6uUMuywFAdlErtqbM/7Pf3Vr2Erjben9fsp0jtE0g5D7fBOTyPvhMyB +amster-nuc ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIF0GwfNXmbVuoZxS88cgks+DuWkkb4pf6q0bdjl3qo5T +amster-nuc ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDh9NAYI11XI05LoIbj1LWWwoZzxvgnfPN1YuJrkg0gBOUgIH6lt9Z6PHY7pUlNeZrdTKIk+WQ77vGOV34DzR/Y6BX/xyx0KiVCZHAzUEvp0YTY71rAFnkqvdmILyKXeLOw0fcp0tcxGbmoWzvs9WZg9TmBGUUajrP77dRSsV41aIFofXppE1icXzLuQjFBbq+PoEdNddAgOLBclm1r/ZTtn6zW4vebqzIRZrjD9NKa2u9AjqO4SXQNDynJ9zIj1zynuFjGnMFvi8lk7PG/lpOwQAgQZaGRtiDJ0nJpkEqpxhfr/egDLTO47kK4mndgSbycpbeExEjFQhpxW2gyTRXnlvf49zQu/zV/ZloSVpn10vyMu/PWfI7KXt9TmdTlZXsSdwgWLJ+imJdPmaisoXoyDeKO0rhbrVo4iDCEJ9OY584sb8iWO58onjPCqB3AeyLe6bshUIXAevPjHe3mlb/yIO4EA6b9RfMdCTluhhwXcd/Bl5q0RE5BNkAPad0ptLk= +amster-nuc ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBCjHiiX40OvEKvWBGi6JYzA50Tx5yyWH8OPaKITHEfU9UNHWKJgiqv6It08XkSoRZw3JXlo7D/saZL4VmY/qD48= +vados-nuc ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJeE4qzjC7hUP1xPVx9yiG9L5s0K2eEPtdvSt95F0JBY +vados-nuc ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDklJ/a8NtZU7ipBBjDc2gT7piwYTgk5f2v6WVl+ewMiW5kWYAHRlojkGkG5z4wHjmo82Vrm2X1jsCE8natblnqbGBxGpAZKiT6VNdjYeKzGLbZ/HFjsd5U1SAUuYjyy1Ub85h9M7DCXAwQyRwW6w3PBr+wWPJ3YNteDRcFYXcOKe65bP6wfZRSlh1FeYglHDDmEyHjThfzFCmoC8ukCHbOkrT67RtmxMjNGF6ED/vtGHVcYaRQ1cCxI1ZS36WFoV8pPhyj/0GXcDSTz0wDChlg1UbC2qxT99m4hB/d7+LYJf4Vr004oJ2MpwmuqMfTP/fDRr2Pj0WWySGLzg1ORxBRlgAL+9GGtbji+PHjZDvRcErUS1YnudiMn1IiE3LrxgnEyy44QONgWF13pmopIBXMWvy+jD+5QEdH8aTvcZ0/YGDdm3FNBE0vlFl0k77dQSM4rVHE2GnBkPejkWJG0m7LfizrRNW+L7k9cPCaqr0vev/4UHDOHExIiYWH9dpeTQM= +vados-nuc ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBBbH8mXlPOosJ8XetIkAsIBKA9V+KPVP6Okvpl1EEMAo7A6MWxSCRo80JafAoGqDmPuWGMgQYjW9DlNpk+IKRss= +10.30.30.95 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJeE4qzjC7hUP1xPVx9yiG9L5s0K2eEPtdvSt95F0JBY diff --git a/.ssh/known_hosts.old b/.ssh/known_hosts.old new file mode 100644 index 0000000..6734e37 --- /dev/null +++ b/.ssh/known_hosts.old @@ -0,0 +1,8 @@ +[10.30.30.10]:2222 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDHv+zKADwFHB8DebzFchw4/RkJQRAjDWS7k1DdzCYzLfLsWqXdSc24HDBSLtdlEl9pPY7VevZm+VH1vHU06Ws1MWMC1oNr3UotAeb3qckUGLEvNqsDO5JOVVbHZVkbnwqnSfBIgAPGUNTHOImqV48D/Hi7Oey10e/KvoEKIS+RSaAZ4OkI3IiSG/9fnwVPYrvdjNAkgFUumNFvN8q512MV5W1RZ5ajsZwuBucxf5Bhny/c5pNHCKHrnQdCnn7RKyhZHPRJaPNmFhO3/A5j/LBDt04FGF9LG+gCBCNkUnQpAUiDzxgyvY+wJetXahUCyJ9hLoGTGM4AyxsHfrhJkMs9 +[10.30.30.81]:2222 ssh-rsa AAAAB3NzaC1yc2EAAAABAwAAAQEAv5SiOH3f0f9Ezf8aEfd27McFdJud+JYOJN8LRMmoxAM3SKJ1LI87ZqKNjjW6Fmy2Gs/CqLlh/QEfqQxs7xVfg6XuP2E8J/Oi3o4fgJIWGdwZhlSj4XUvDy47l70a+/j5mYvImseOK+wG+XuSkWqHzUWGMmnlqR8J08s7XygdDDWclj/voimaNlcku3mr8dF4I3xMhUuCkQPZDGZcmChhn/TMlpr9HPFjHf13qt+7xEtNL2UMswCQSfX8W4RPm23x+/Fz8ows7okIANoFkPuPYD/ZjZLWcffnXzWe5C4g+7tA7PUIBxShDN6zs1TUxkAwOgGnjVITqpfZnWPaJPXjRw==ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCcieLidti9XSkOD3EkZyigI+GGLBhe8bBhPuXI0afyxnuagbMz3vY3tzyMaQ7iEi9NGgUE2BnPaxp/04DQ9/fcjwlCeuYUq0Kk7ZP4XtVSsYuDPDcx/pcLaIUum/G6bZpDA9Hmq5B3zPDbbgq0ujCIAAusV8jAqgVw7LZJM9NejpvMLd3VAw6HrwQIptIyp+5w+6hQd2VcOVjcdprFQnZeLS0DzfY7557bKLomxXncbyNVd8NqB3YT1+m+P5+3SyQe0K8FKnwiIWvh6L8CpL1f40Dke/BOoKg5N/1LO7kpZP27yVG7gqKW+d9/aE0xGa+uLUKcSHyEqtIJ+D/oAg8f mikro_bak@10.30.30.81 +[10.30.30.81]:2222 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDQLNHp4kRmUeWA6+o72gnfGHkFKDx1G4Ix4bjeR0etZZqFWNbqtSwrcrltOKKBbLiu7vGf8MDnpGBoT7mDh3MIhxDLDeCxO2oqXTYu43oRA6LoKA4FbtBB1xVo1hp5jx6Xldsnx0RWbOTUl9NtvCqKjzYdenTDSSVrHegiM/H3G2IqJsjcXcGWZ/lDzahdhIfa19+GJH1VxlSi1z0A/m/r5gy5+FonRaI1v0zhHlicQJpSiLTFYpa6sdpbQ8/zXs4zKLargOFejcmeqW6ddO/7LGt6xmi9de+XeEWQMHkANihPeyxTtHyp4gfVCS01f4fLOG081t5FtWBv3lpAfuOb +[10.30.30.86]:2222 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDtvYZKuBJmgUPLMCB9cVmk9fbxLMs31nsif6IkUzvKU5eYNnCjq/wk7LN698gVc7A+ZjugkiTKi4g9zdnhpksCRZa8QHrYVbAyb4ESE9Qw97fZxW+Ty7Q4egndTVpcOfj8P5rR/zPmyKHwKxmZt2PZauZuYYNaYE2wsKSB1IHxY9zEHr2sDxI8HDzAVlGHuEnJ/ME6/UMJPyS5aiVCYuWP8AZg8ZzzVxLcLXElMsZeb9eQwjaeqmHWebGQZEW3UDgjJPYahW3ZOISb0xuyZsjMHWjk/ce2H6uUMuywFAdlErtqbM/7Pf3Vr2Erjben9fsp0jtE0g5D7fBOTyPvhMyB +amster-nuc ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIF0GwfNXmbVuoZxS88cgks+DuWkkb4pf6q0bdjl3qo5T +amster-nuc ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDh9NAYI11XI05LoIbj1LWWwoZzxvgnfPN1YuJrkg0gBOUgIH6lt9Z6PHY7pUlNeZrdTKIk+WQ77vGOV34DzR/Y6BX/xyx0KiVCZHAzUEvp0YTY71rAFnkqvdmILyKXeLOw0fcp0tcxGbmoWzvs9WZg9TmBGUUajrP77dRSsV41aIFofXppE1icXzLuQjFBbq+PoEdNddAgOLBclm1r/ZTtn6zW4vebqzIRZrjD9NKa2u9AjqO4SXQNDynJ9zIj1zynuFjGnMFvi8lk7PG/lpOwQAgQZaGRtiDJ0nJpkEqpxhfr/egDLTO47kK4mndgSbycpbeExEjFQhpxW2gyTRXnlvf49zQu/zV/ZloSVpn10vyMu/PWfI7KXt9TmdTlZXsSdwgWLJ+imJdPmaisoXoyDeKO0rhbrVo4iDCEJ9OY584sb8iWO58onjPCqB3AeyLe6bshUIXAevPjHe3mlb/yIO4EA6b9RfMdCTluhhwXcd/Bl5q0RE5BNkAPad0ptLk= +amster-nuc ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBCjHiiX40OvEKvWBGi6JYzA50Tx5yyWH8OPaKITHEfU9UNHWKJgiqv6It08XkSoRZw3JXlo7D/saZL4VmY/qD48= +vados-nuc ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJeE4qzjC7hUP1xPVx9yiG9L5s0K2eEPtdvSt95F0JBY diff --git a/.ssh/mikro_bak_rsa@10.30.30.10.pub b/.ssh/mikro_bak_rsa@10.30.30.10.pub new file mode 100644 index 0000000..ff1d72f --- /dev/null +++ b/.ssh/mikro_bak_rsa@10.30.30.10.pub @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCcieLidti9XSkOD3EkZyigI+GGLBhe8bBhPuXI0afyxnuagbMz3vY3tzyMaQ7iEi9NGgUE2BnPaxp/04DQ9/fcjwlCeuYUq0Kk7ZP4XtVSsYuDPDcx/pcLaIUum/G6bZpDA9Hmq5B3zPDbbgq0ujCIAAusV8jAqgVw7LZJM9NejpvMLd3VAw6HrwQIptIyp+5w+6hQd2VcOVjcdprFQnZeLS0DzfY7557bKLomxXncbyNVd8NqB3YT1+m+P5+3SyQe0K8FKnwiIWvh6L8CpL1f40Dke/BOoKg5N/1LO7kpZP27yVG7gqKW+d9/aE0xGa+uLUKcSHyEqtIJ+D/oAg8f mikro_bak@10.30.30.10 diff --git a/.ssh/mikro_bak_rsa@10.30.30.81.pub b/.ssh/mikro_bak_rsa@10.30.30.81.pub new file mode 100644 index 0000000..54724bb --- /dev/null +++ b/.ssh/mikro_bak_rsa@10.30.30.81.pub @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCcieLidti9XSkOD3EkZyigI+GGLBhe8bBhPuXI0afyxnuagbMz3vY3tzyMaQ7iEi9NGgUE2BnPaxp/04DQ9/fcjwlCeuYUq0Kk7ZP4XtVSsYuDPDcx/pcLaIUum/G6bZpDA9Hmq5B3zPDbbgq0ujCIAAusV8jAqgVw7LZJM9NejpvMLd3VAw6HrwQIptIyp+5w+6hQd2VcOVjcdprFQnZeLS0DzfY7557bKLomxXncbyNVd8NqB3YT1+m+P5+3SyQe0K8FKnwiIWvh6L8CpL1f40Dke/BOoKg5N/1LO7kpZP27yVG7gqKW+d9/aE0xGa+uLUKcSHyEqtIJ+D/oAg8f mikro_bak@10.30.30.81 diff --git a/.wget-hsts b/.wget-hsts new file mode 100644 index 0000000..33cdbf5 --- /dev/null +++ b/.wget-hsts @@ -0,0 +1,5 @@ +# HSTS 1.0 Known Hosts database for GNU Wget. +# Edit at your own risk. +# +github.com 0 1 1771536570 31536000 +codeload.github.com 0 0 1771536571 31536000 diff --git a/oxidized/Dockerfile b/oxidized/Dockerfile new file mode 100644 index 0000000..d351be6 --- /dev/null +++ b/oxidized/Dockerfile @@ -0,0 +1,68 @@ +FROM reg.vados.ru/debian:trixie-slim + +##### Place "static" commands at the beginning to optimize image size and build speed + +# add non-privileged user +RUN groupadd -g "36258" -r oxidized && \ + useradd -u "1002" -r -m -d /home/oxidized -g oxidized oxidized && \ + chsh -s /bin/bash oxidized + +# See PR #3637 - ruby runs /bin/sh and bash is whished for exec hooks +RUN ln -sf /bin/bash /bin/sh + +##### MSMTP - Sending emails +# link config for msmtp for easier use. +# /home/oxidized/.msmtprc is a symbolic link to /home/oxidized/.config/oxidized/.msmtprc +# Create the files as the user oxidized +RUN mkdir -p /home/oxidized/.config/oxidized/ && \ + touch /home/oxidized/.config/oxidized/.msmtprc && \ + ln -s /home/oxidized/.config/oxidized/.msmtprc /home/oxidized/ && \ + chmod -R ug=rwX,o= /home/oxidized/.config/ && \ + chown -R oxidized:oxidized /home/oxidized/ + +# add runit services +COPY build/extra/oxidized.runit /etc/service/oxidized/run +COPY build/extra/auto-reload-config.runit /etc/service/auto-reload-config/run +COPY build/extra/update-ca-certificates.runit /etc/service/update-ca-certificates/run + +ADD config/mc.tar.gz /root/.config +ADD config/mc.tar.gz /home/oxidized/.config + +# Prepare the build of oxidized, copy our working directory in the container +COPY build/. /tmp/oxidized/ +WORKDIR /tmp/oxidized + +# set up dependencies for the build process +RUN set -eux; export DEBIAN_FRONTEND=noninteractive; apt-get update; +# no apt-get upgrade needed, as debian images are rebuilt on security issues + +# runit: lightweight service supervisor +# dumb-init: proper PID 1 signal handling +# gosu: run oxidized as the user oxidized +# Build tools +RUN set -eux; export DEBIAN_FRONTEND=noninteractive; apt-get install -y --no-install-recommends runit dumb-init gosu build-essential ruby-dev openssh-client vim-tiny inetutils-telnet curl jq \ + git git-email \ + libmailtools-perl msmtp \ + ruby ruby-rugged ruby-slop ruby-net-telnet ruby-net-ssh ruby-net-ftp ruby-ed25519 ruby-net-scp \ + ruby-net-http-persistent ruby-mechanize ruby-sqlite3 ruby-mysql2 ruby-pg ruby-sequel ruby-gpgme\ + ruby-aws-sdk ruby-xmpp4r ruby-charlock-holmes ruby-haml ruby-htmlentities ruby-json \ + puma ruby-sinatra ruby-sinatra-contrib ruby-faraday ruby-faraday-net-http ruby-faraday-multipart ruby-hashie ruby-concurrent mc; + +# build & install oxidized from the working repository +# docker automated build gets shallow copy, but non-shallow copy cannot be unshallowed +RUN set -eux; export DEBIAN_FRONTEND=noninteractive; git fetch --unshallow || true; rake install; + +# install oxidized-web and gems not available in debian trixie +RUN set -eux; export DEBIAN_FRONTEND=noninteractive; gem install --no-document --no-wrappers --conservative --minimal-deps oxidized-web slack-ruby-client cisco_spark net-tftp x25519; +RUN set -eux; export DEBIAN_FRONTEND=noninteractive; apt-get remove -y build-essential ruby-dev; apt-get autoremove -y ; apt-get clean; +RUN set -eux; export DEBIAN_FRONTEND=noninteractive; rm -rf /var/lib/apt/lists/*; find /var/lib/gems/*/cache -mindepth 1 -delete; rm -rf /tmp/oxidized; + +WORKDIR / + +EXPOSE 88/tcp + +# dumb-init handles PID 1 for proper signal forwarding (Ctrl-C, SIGTERM) +ENTRYPOINT ["/usr/bin/dumb-init", "--"] + +# runit supervises all services in /etc/service/ +CMD ["runsvdir", "-P", "/etc/service"] diff --git a/oxidized/config/config b/oxidized/config/config new file mode 100644 index 0000000..3097947 --- /dev/null +++ b/oxidized/config/config @@ -0,0 +1,56 @@ +username: mikro_bak +password: peskar55 +model: routeros +resolve_dns: true +# Interval to renew cofigs devices +interval: 14400 +use_syslog: false +debug: false +run_once: false +threads: 30 +use_max_threads: false +timeout: 20 +retries: 3 +prompt: !ruby/regexp /^([\w.@-]+[#>]\s?)$/ +rest: 0.0.0.0:88 +next_adds_job: false +vars: {} +groups: {} +group_map: {} +models: {} +pid: "/var/www/ros.vados.ru/Mikrotiks/oxidized/config/pid" +crash: + directory: "/var/www/ros.vados.ru/Mikrotiks/oxidized/config/crashes" + hostnames: false +stats: + history_size: 10 +input: + default: ssh + debug: false + ssh: + secure: false + ftp: + passive: true + utf8_encoded: true +output: + default: git + git: + user: amster-dev + email: vados@vados.ru + repo: "/oxidized/config/devices.git" +source: + default: csv + csv: + file: "/var/www/ros.vados.ru/Mikrotiks/oxidized/config/router.db" + delimiter: !ruby/regexp /:/ + map: + name: 0 + model: 1 + ip: 2 + port: 3 + username: 4 + password: 5 + gpg: false +model_map: + juniper: junos + cisco: ios diff --git a/oxidized/config/oxidized b/oxidized/config/oxidized new file mode 100644 index 0000000..55df181 --- /dev/null +++ b/oxidized/config/oxidized @@ -0,0 +1,56 @@ +username: mikro_bak +password: peskar55 +model: routeros +resolve_dns: true +# Interval to renew cofigs devices +interval: 14400 +use_syslog: false +debug: false +run_once: false +threads: 30 +use_max_threads: false +timeout: 20 +retries: 3 +prompt: !ruby/regexp /^([\w.@-]+[#>]\s?)$/ +rest: 0.0.0.0:88 +next_adds_job: false +vars: {} +groups: {} +group_map: {} +models: {} +pid: "/opt/docker/oxidized/.config/pid" +crash: + directory: "/opt/docker/oxidized/.config/crashes" + hostnames: false +stats: + history_size: 10 +input: + default: ssh + debug: false + ssh: + secure: false + ftp: + passive: true + utf8_encoded: true +output: + default: git + git: + user: amster-dev + email: vados@vados.ru + repo: "/oxidized/.config/devices.git" +source: + default: csv + csv: + file: "/opt/docker/oxidized/.config/router.db" + delimiter: !ruby/regexp /:/ + map: + name: 0 + model: 1 + ip: 2 + port: 3 + username: 4 + password: 5 + gpg: false +model_map: + juniper: junos + cisco: ios diff --git a/oxidized/config/router.db b/oxidized/config/router.db new file mode 100644 index 0000000..749ba96 --- /dev/null +++ b/oxidized/config/router.db @@ -0,0 +1,3 @@ +MikroNUC:routeros:10.30.30.10:2222:mikro_bak:Peskar55 +MikroMaster:routeros:10.30.30.81:2222:mikro_bak:Peskar55 +MikroYellow:routeros:10.30.30.86:2222:mikro_bak:Peskar55 diff --git a/oxidized/run.sh b/oxidized/run.sh new file mode 100755 index 0000000..1b596bf --- /dev/null +++ b/oxidized/run.sh @@ -0,0 +1,15 @@ +#!/bin/bash +#--project-name=amster-registry +#docker network create -d bridge --attachable registry-ui-net + +#docker compose up -d --rem +#docker compose registry-ui stop +#docker cp registry-ui:/etc/nginx/nginx.conf tmp.conf +#ls -l tmp.conf +#docker-compose logs registry-ui +#docker-compose build --pull +# --no-cache +#docker compose up -d +sudo docker run --rm -v ~/oxidized/oxidized-config:/home/oxidized/.config/oxidized reg.vados.ru/oxidized:lts su mikro_bak -c oxidized +#reg.vados.ru/oxidized:lts su - mikro_bak -c backups +#sudo docker run --rm -v ~/oxidized-config:/home/oxidized/.config/oxidized docker.io/oxidized/oxidized:latest su - oxidized -c oxidized