From: vados-dev Date: Thu, 12 Mar 2026 03:40:15 +0000 (+0300) Subject: Add Updated by codex ros-diff.sh X-Git-Url: https://git.vados.ru/gitweb.cgi?a=commitdiff_plain;h=f343f5a60a123db0adf051f5ffdc84c571b3497b;p=Mikrotiks%2FMikrotiks.git Add Updated by codex ros-diff.sh --- diff --git a/bin/ros-diff.sh b/bin/ros-diff.sh index be2c8c6..6ba39fe 100755 --- a/bin/ros-diff.sh +++ b/bin/ros-diff.sh @@ -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