Actualizo éste script/post para que si por algún motivo no pueda conectar con el router mikrotik haga timeout y siga con el Backup.
root@xava-ftp:~/scripts# cat /root/scripts/backup_mikrotiks_SN.sh #!/bin/bash ############################################ # SCRIPT CREATED BY: Laura Mora i Aubert # # SCRIPT DATE: 2019-11-27 # # WEBSITE: https://blackhold.nusepas.com # # INFO: Script that allows remote backup # # of Mikrotik Routers. # # tested on 5.x & 6.x routers # # LICENSE: creative commons (by:sa) # ############################################ ############################################ # INSTRUCTIONS # ############################################ # # # 1. Generate ssh-keys on your server # # cd ~/.ssh # # sh-keygen -t dsa # # # # 2. Rename pubkey # # cp .ssh/id_dsa.pub backupkey # # # # 3. Put the file on MKT Router # # ftp x.x.x.x # # ftp> bin # # ftp> put backupkey # # ftp> bye # # # # 4. Import pubkey in MKT Router # # telnet x.x.x.x # # [admin@mikrotik] /user ssh-keys\ # # import user=admin\ # # public-key-file=backupkey # # # # 5. Access with ssh to the MKT Router # # # # 6. [SCRIPT] Change USER and ID values # # # # 7. Run the script! # # # ############################################ ############################################ # OTHERS # ############################################ # # # If you have bruteforce login rules, # # add your backup server IP in the last # # rule: src-address=!SERVERIP # # # ############################################ # Change username USER=blackhold BACKUP_DIR="/root/backups/capa8" if [ ! -d "${BACKUP_DIR}" ]; then mkdir -p ${BACKUP_DIR} fi cd ${BACKUP_DIR} # delete files older than x days find ${BACKUP_DIR}/ -mtime +7 -exec rm {} \; ############################################ # Keep this structure, take care of the : # # Increment the "n" with a number # # ID[n]="RouterName:IPAddress:Port" # ############################################ ID[0]="Loc01-Router01:10.x.x.x:22" ID[1]="Loc02-Router02:192.168.x.x:22" for INFO in "${ID[@]}" do DATE=`date +%Y-%m-%d_%H:%M:%S` NAME=`echo ${INFO} |awk -F ':' '{print $1}'` IP=`echo ${INFO} |awk -F ':' '{print $2}'` PORT=`echo ${INFO} |awk -F ':' '{print $3}'` echo "-----------------------------------------------------" echo "Starting Backup: ${NAME} (${IP}:${PORT}) on ${DATE}" echo "-----------------------------------------------------" ssh -p${PORT} ${USER}@${IP} -o ConnectTimeout=3 "/export f=${NAME}_${IP}_${DATE}" ssh -p${PORT} ${USER}@${IP} -o ConnectTimeout=3 "/system backup save name=${NAME}_${IP}_${DATE}" ssh -p${PORT} ${USER}@${IP} -o ConnectTimeout=3 "/ip service enable ftp" sleep 5 sftp -o ConnectTimeout=3 ${USER}@${IP}:${NAME}_${IP}_${DATE}.rsc sftp -o ConnectTimeout=3 ${USER}@${IP}:${NAME}_${IP}_${DATE}.backup ssh -p${PORT} ${USER}@${IP} -o ConnectTimeout=3 "/ip service disable ftp" ssh -p${PORT} ${USER}@${IP} -o ConnectTimeout=3 "/file remove ${NAME}_${IP}_${DATE}.rsc" ssh -p${PORT} ${USER}@${IP} -o ConnectTimeout=3 "/file remove ${NAME}_${IP}_${DATE}.backup" echo "-----------------------------------------------------" echo done