]> Git [git.vados.ru] :: Repos - Mikrotiks/Mikrotiks.git/commitdiff
Add Updated by codex ros-diff.sh
authorvados-dev <vados@vados.ru>
Thu, 12 Mar 2026 03:40:15 +0000 (06:40 +0300)
committervados-dev <vados@vados.ru>
Thu, 12 Mar 2026 03:40:15 +0000 (06:40 +0300)
bin/ros-diff.sh

index be2c8c688a67606ff5e35c3827da009cc43fc01c..6ba39feab11af750acaee6581b21c06667ddce05 100755 (executable)
@@ -163,6 +163,54 @@ save_log() {
     fi
 }
 
+log_info() {
+    local msg="$*"
+    local prefix=""
+    if [ -n "${RouterName}" ]; then
+        prefix="${RouterName} "
+    fi
+    if [ -t 1 ] && $DEBUG_OUT; then
+        info "${prefix}${msg}"
+    fi
+    save_log "${msg}"
+}
+
+log_success() {
+    local msg="$*"
+    local prefix=""
+    if [ -n "${RouterName}" ]; then
+        prefix="${RouterName} "
+    fi
+    if [ -t 1 ] && $DEBUG_OUT; then
+        success "${prefix}${msg}"
+    fi
+    save_log "${msg}"
+}
+
+log_error() {
+    local msg="$*"
+    local prefix=""
+    if [ -n "${RouterName}" ]; then
+        prefix="${RouterName} "
+    fi
+    if [ -t 1 ] && $DEBUG_OUT; then
+        error "${prefix}${msg}"
+    fi
+    save_log "${msg}"
+}
+
+log_warning() {
+    local msg="$*"
+    local prefix=""
+    if [ -n "${RouterName}" ]; then
+        prefix="${RouterName} "
+    fi
+    if [ -t 1 ] && $DEBUG_OUT; then
+        warning "${prefix}${msg}"
+    fi
+    save_log "${msg}"
+}
+
 get_connections_str() {
     local opts
     local log_msg
@@ -174,11 +222,8 @@ get_connections_str() {
     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}"
+        log_msg="- Error: SSH key not found at $DEFAULT_SSH_KEY\nRun ./setup-ssh-keys.sh to generate the key"
+        log_error "${log_msg}"
     exit 1
     fi
 #    if [ -n "$DEFAULT_CONNECT_ATTEMPTS" ]; then
@@ -196,10 +241,7 @@ SSH_OPTS="${opts[*]}"
         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}"
+        log_error "${log_msg}"
         exit 1
     fi
 
@@ -258,17 +300,11 @@ download_config() {
 
     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}"
+        log_success "${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}"
+        log_error "${log_msg}"
         exit 1
     fi
 }
@@ -286,29 +322,21 @@ compare_config() {
         if [ -t 1 ] && $DEBUG_OUT; then
             section " CREATE BACKUP "
             sleep 1
-            info "${RouterName} ${log_msg}"
         fi
-        save_log "${log_msg}"
+        log_info "${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_info "${log_msg}"
         log_msg="- Remove ${diff_file} file."
-        if [ -t 1 ] && $DEBUG_OUT; then
-            info "${RouterName} ${log_msg}"
-        fi
-        save_log "${log_msg}"
+        log_info "${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}"
+        log_info "${log_msg}"
         ${CMD_RM} -f ${config_file}
 
         return 1
@@ -325,17 +353,11 @@ check_directory() {
   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}"
+        log_success "${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}"
+        log_error "${log_msg}"
         exit 1
     fi
 # This script must be run by a special user in his home directory.
@@ -354,6 +376,9 @@ backup_binary() {
     local log_msg
     local crypt_str
     #${SSH_STR} :put [/system script environment get [find name=BackupPassword] value];
+    # Examples:
+    # bin_pass="$(${SSH_STR} ':put [/system script environment get [find name=BackupPassword] value]')"
+    # bin_pass="$(${SSH_STR} ':put $BackupPassword')"  # if BackupPassword is a global
 
     if ${SSH_STR} /system/script environment find where name=BackupEncrypt && ${SSH_STR} /system/script environment find where name=BackupPassword; then
         
@@ -416,18 +441,16 @@ LogFile="/var/log/Mikrotiks/${RouterName}.log"
 log_msg="undefined"
 
 log_msg="- Start backup script ${ScriptName} for ${RouterName}"
+log_info "${log_msg}"
 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}"
+log_info "${log_msg}"
 
 CheckDirs=("${BaseDir}" "${TempDir}" "${HistoryDir}")
 for dir in "${CheckDirs[@]}"; do
@@ -435,16 +458,10 @@ for dir in "${CheckDirs[@]}"; do
 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_success "${log_msg}"
 
 log_msg="Set variables for ${RouterName}..."
-if [ -t 1 ] && $DEBUG_OUT; then
-    info "${log_msg}"
-fi
-save_log "- ${log_msg}"
+log_info "${log_msg}"
 
 precedent_config=${BaseDir}"Precedent-Config.rsc"
 current_config=${TempDir}"Config.rsc"
@@ -452,25 +469,16 @@ 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}"
+log_success "${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}"
+log_info "${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}"
+log_info "${log_msg}"
 
 if compare_config ${current_config} ${precedent_config} ${diff_config} ${RouterName} ${LogFile}; then
     BackupDir=${BaseDir}"${DStamp}/"
@@ -480,10 +488,7 @@ if compare_config ${current_config} ${precedent_config} ${diff_config} ${RouterN
     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}"
+    log_info "${log_msg}"
 
     cp ${current_config} ${save_config}
 
@@ -492,73 +497,45 @@ if compare_config ${current_config} ${precedent_config} ${diff_config} ${RouterN
     ${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_success "${log_msg}"
 
     log_msg="Create ${current_backup} file on ${RouterName}..."
-    if [ -t 1 ] && $DEBUG_OUT; then
-        info "${log_msg}"
-    fi
-    save_log "- ${log_msg}"
+    log_info "${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_success "${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}"
+        log_info "${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
+        log_msg="- Binary Backup download complete!"
+        log_success "${log_msg}"
     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}"
+        log_msg="- Error! Save binary backup on ${RoutrName} failed!"
+        log_error "${log_msg}"
+    fi
+    else
+    log_msg="Error create binary backup ${current_backup} on ${RouterName}!"
+    log_error "${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}"
+    log_info "${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}"
+    log_msg="- Remove ${current_backup} file on ${RouterName} complete succesfully!"
+    log_success "${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}"
+    log_msg="- Error Remove ${current_backup} file on ${RouterName}!"
+    log_error "${log_msg}"
     fi
 
     cd "${BaseDir}"
@@ -567,89 +544,52 @@ if compare_config ${current_config} ${precedent_config} ${diff_config} ${RouterN
     ${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}"
+    log_info "${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}"
+        log_success "${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}"
+        log_error "${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}"
+    log_info "${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}"
+    log_info "${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}"
+        log_success "${log_msg}"
     else
         log_msg="- Git add commit Error!"
-        if [ -t 1 ] && $DEBUG_OUT; then
-            error "${RouterName} ${log_msg}"
-        fi
-        save_log "${log_msg}"
+        log_error "${log_msg}"
     fi
     log_msg="- Git push commit..."
-    if [ -t 1 ] && $DEBUG_OUT; then
-        info "${RouterName} ${log_msg}"
-    fi
-    save_log "${log_msg}"
+    log_info "${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}"
+        log_success "${log_msg}"
     else
         log_msg="- Git push commit Error!"
-        if [ -t 1 ] && $DEBUG_OUT; then
-            error "${RouterName} ${log_msg}"
-        fi
-        save_log "${log_msg}"
+        log_error "${log_msg}"
     fi
 else
     log_msg="- ${RouterName} backup complete!"
-    if [ -t 1 ] && $DEBUG_OUT; then
-        info "${RouterName} ${log_msg}"
-    fi
-        save_log "${log_msg}"
+    log_info "${log_msg}"
 fi
 
 log_msg="- Remove Temp directory."
-if [ -t 1 ] && $DEBUG_OUT; then
-    info "${RouterName} ${log_msg}"
-fi
-    save_log "${log_msg}"
+log_info "${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}"
+log_success "${log_msg}"
 
 done <<<"$(echo -e $HR)"
 LogFile="${DEFAULT_LOG}"
@@ -659,7 +599,6 @@ done
 log_msg="All Done! Exit 0."
 if [ -t 1 ] && $DEBUG_OUT; then
     section " DONE "
-    success "${log_msg}"
 fi
-save_log "${log_msg}"
+log_success "${log_msg}"
 exit 0