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
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
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
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
}
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
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.
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
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
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"
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}/"
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}
${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}"
${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}"
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