Site Tools


backup_script

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
backup_script [2025/06/20 19:06] – [Goals] thilobackup_script [2025/09/10 15:45] (current) – Key issue fixec thilo
Line 41: Line 41:
  
   - The netcat command must be available on the backup server.   - The netcat command must be available on the backup server.
-  - The router's root user must have access to the public SSH key \\ of the user executing the script on backup server.+  - The user executing the script on backup server must have access to the router's root user via SSH key.
  
  \\  \\
Line 101: Line 101:
    TRANSFER_FILENAME=config.tar    TRANSFER_FILENAME=config.tar
        
-   # It may be, that Tomato router has no - or other, wrong - timeother or no timee +   # It may happen, that Tomato router has no - or other, wrong - time 
-   # take date from localhost (i.e. backupserver) into backup filename+   # take date from localhost (i.e. backup server) into backup filename
    DATE=`date +%Y%m%d_%H%M`    DATE=`date +%Y%m%d_%H%M`
        
Line 111: Line 111:
    # Thinks like    # Thinks like
    # VAR=`nvram get os_version`     # VAR=`nvram get os_version` 
-   # seem not to work in bash via here doc, so write results into script file and source it +   # seem not to work in bash via here doc, so write results into script file and source it. 
-   # Further the individual filename is general not known, so tar it into temp file+   # Further the individual filename is generally not known, so tar it into temp file.
    #    #
    # Kill netcat zombies    # Kill netcat zombies
    kill -9 `ps -ef | grep -v grep | grep netcat | sed -e "s/ [ ]*/ /g" | cut -d " " -f 2` 2> /dev/null    kill -9 `ps -ef | grep -v grep | grep netcat | sed -e "s/ [ ]*/ /g" | cut -d " " -f 2` 2> /dev/null
    (netcat -l -p ${PORT} > ${TRANSFER_FILENAME}) &    (netcat -l -p ${PORT} > ${TRANSFER_FILENAME}) &
 +   # Create the backup file on the router by executing the following commands (indented lines) there
    ssh ${USER}@${ROUTER} -i ${LOCAL_ID_FILE} <<ENDSSH    ssh ${USER}@${ROUTER} -i ${LOCAL_ID_FILE} <<ENDSSH
         rm -f ${SCRIPT_FILE} ${TRANSFER_FILENAME} ${PREFIX}_*_${DATE_REGEX}_${TIME_REGEX}.${EXT}         rm -f ${SCRIPT_FILE} ${TRANSFER_FILENAME} ${PREFIX}_*_${DATE_REGEX}_${TIME_REGEX}.${EXT}
Line 129: Line 130:
         tar -cvf ${TRANSFER_FILENAME} ${PREFIX}_*_${DATE_REGEX}_${TIME_REGEX}.${EXT} > /dev/null         tar -cvf ${TRANSFER_FILENAME} ${PREFIX}_*_${DATE_REGEX}_${TIME_REGEX}.${EXT} > /dev/null
         cat ${TRANSFER_FILENAME} | nc ${BACKUPHOST} ${PORT}         cat ${TRANSFER_FILENAME} | nc ${BACKUPHOST} ${PORT}
-        sleep 5 # just wait a little bit before deleting the files not needed here any more+        sleep 5 # just wait a little while before deleting the files not needed here any more
         rm -f ${SCRIPT_FILE} ${TRANSFER_FILENAME} ${PREFIX}_*_${DATE_REGEX}_${TIME_REGEX}.${EXT}         rm -f ${SCRIPT_FILE} ${TRANSFER_FILENAME} ${PREFIX}_*_${DATE_REGEX}_${TIME_REGEX}.${EXT}
    ENDSSH    ENDSSH
Line 148: Line 149:
         fi         fi
         # In total, keep only ${NO_OF_DIFF_FILES_TO_BE_KEPT} files - delete older files (of any day)         # In total, keep only ${NO_OF_DIFF_FILES_TO_BE_KEPT} files - delete older files (of any day)
-        OLDER_FILES=`ls -t ${ALL_BACKUP_FILES_PREFIX}_${DATE_REGEX}_${TIME_REGEX}.${EXT} | sed -e 1,${NO_OF_DIFF_FILES_TO_BE_KEPT}d`+        OLDER_FILES=`ls ${ALL_BACKUP_FILES_PREFIX}_${DATE_REGEX}_${TIME_REGEX}.${EXT} | sort -r | sed -e 1,${NO_OF_DIFF_FILES_TO_BE_KEPT}d`
         if [ "${OLDER_FILES}" ]; then         if [ "${OLDER_FILES}" ]; then
                 echo "keep only ${NO_OF_DIFF_FILES_TO_BE_KEPT} in total, delete:"                 echo "keep only ${NO_OF_DIFF_FILES_TO_BE_KEPT} in total, delete:"
backup_script.1750442779.txt.gz · Last modified: by thilo