This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
backup_script [2025/05/03 13:21] – command line params thilo | backup_script [2025/05/06 08:08] (current) – little typo thilo | ||
---|---|---|---|
Line 52: | Line 52: | ||
\\ | \\ | ||
- | - If an IP and an ID file are given, these will be used, else defaults apply (Router IP from `ip r`) | + | - Command line arguments: backup directory, id-file and router /.eg. as IP). If provided, these will be used, else defaults apply (Router IP from `ip r`) |
- Date regex covers from 1970 - in case Tomato Router has no time. | - Date regex covers from 1970 - in case Tomato Router has no time. | ||
- Sometimes tar fails. | - Sometimes tar fails. | ||
Line 62: | Line 62: | ||
# | # | ||
- | ROUTER=`ip r | grep default | head -1 | cut -d " " -f 3` | + | DIR2BACKUP=/ |
- | | + | |
| | ||
- | + | ROUTER=`ip r | grep default | head -1 | cut -d " " -f 3` | |
while [[ $# -gt 0 ]]; do | while [[ $# -gt 0 ]]; do | ||
Line 78: | Line 77: | ||
shift; shift | shift; shift | ||
done | done | ||
- | + | ||
- | | + | |
- | echo " | + | |
- | echo " | + | |
- | echo | + | |
- | | + | |
echo | echo | ||
echo " | echo " | ||
Line 92: | Line 87: | ||
| | ||
| | ||
- | |||
| | ||
| | ||
Line 104: | Line 98: | ||
| | ||
| | ||
- | pushd ${BACKUP_DIR} > /dev/null | + | pushd ${DIR2BACKUP} > /dev/null |
rm -f ${TRANSFER_FILENAME} | rm -f ${TRANSFER_FILENAME} | ||
- | + | # | |
# Thinks like | # Thinks like | ||
# VAR=`nvram get os_version` | # VAR=`nvram get os_version` | ||
Line 131: | Line 125: | ||
rm -f ${SCRIPT_FILE} ${TRANSFER_FILENAME} ${PREFIX}_*_${DATE_REGEX}_${TIME_REGEX}.${EXT} | rm -f ${SCRIPT_FILE} ${TRANSFER_FILENAME} ${PREFIX}_*_${DATE_REGEX}_${TIME_REGEX}.${EXT} | ||
| | ||
- | | + | |
| | ||
if [ " | if [ " | ||
Line 141: | Line 135: | ||
DATE=`date +%Y%m%d_%H%M` | DATE=`date +%Y%m%d_%H%M` | ||
if ! [[ `find -cmin 5 | grep ${THIS_BACKUP_FILE}` ]] ; then | if ! [[ `find -cmin 5 | grep ${THIS_BACKUP_FILE}` ]] ; then | ||
- | # Date of the new files is more that 5 mind in the past => seems Tomato Router has no date (or date 1970-01-01) | + | # Date of the new files is more that 5 mins in the past => seems Tomato Router has no date (or date 1970-01-01) |
touch ${THIS_BACKUP_FILE} | touch ${THIS_BACKUP_FILE} | ||
fi | fi | ||
- | # Keep only one file (the latest) per day - delete earlier file of same day | + | # Keep only one file (the latest) per day - delete earlier file of same day |
- | | + | |
- | TODAYS_BACKUP_FILES_PREFIX=${THIS_BACKUP_FILE%_*} | + | |
- | LIST_OLD_BACKUPS_OF_TODAY=`find -ctime 0 | grep ${ALL_BACKUP_FILES_PREFIX} | grep -v ${THIS_BACKUP_FILE}` | + | |
if [ " | if [ " | ||
echo " | echo " | ||
Line 154: | Line 146: | ||
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) | ||
- | ALL_BACKUP_FILES_PREFIX=${TODAYS_BACKUP_FILES_PREFIX%_*} | ||
OLDER_FILES=`ls -t ${ALL_BACKUP_FILES_PREFIX}_${DATE_REGEX}_${TIME_REGEX}.${EXT} | sed -e 1, | OLDER_FILES=`ls -t ${ALL_BACKUP_FILES_PREFIX}_${DATE_REGEX}_${TIME_REGEX}.${EXT} | sed -e 1, | ||
if [ " | if [ " | ||
Line 167: | Line 158: | ||
fi | fi | ||
popd > /dev/null | popd > /dev/null | ||
+ | | ||
\\ | \\ | ||