tachtler:dovecot_backup_-_skript
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungNächste ÜberarbeitungBeide Seiten der Revision | ||
tachtler:dovecot_backup_-_skript [2019/10/07 16:35] – [Backup] klaus | tachtler:dovecot_backup_-_skript [2019/10/16 14:53] – [Backup] klaus | ||
---|---|---|---|
Zeile 46: | Zeile 46: | ||
# CUSTOM - Backup-Files. | # CUSTOM - Backup-Files. | ||
+ | TMP_FOLDER='/ | ||
DIR_BACKUP='/ | DIR_BACKUP='/ | ||
FILE_BACKUP=dovecot_backup_`date ' | FILE_BACKUP=dovecot_backup_`date ' | ||
Zeile 82: | Zeile 83: | ||
^ Parametername | ^ Parametername | ||
| '' | | '' | ||
+ | | '' | ||
| '' | | '' | ||
| '' | | '' | ||
Zeile 126: | Zeile 128: | ||
# will be send by e-mail. | # will be send by e-mail. | ||
# # | # # | ||
- | # Last update : 31.01.2019 # | + | # Last update : 08.10.2019 # |
- | # Version | + | # Version |
# # | # # | ||
# Author | # Author | ||
Zeile 207: | Zeile 209: | ||
# Version | # Version | ||
# Description : Code redesign. | # Description : Code redesign. | ||
+ | # -------------------------------------------------------------------------- # | ||
+ | # Version | ||
+ | # Description : GitHub Issue #12 # | ||
+ | # | ||
+ | # | ||
+ | # the mailboxes was introduced. This allows the use of a # | ||
+ | # | ||
+ | # on a faster storage medium, or also on a local storage | ||
+ | # | ||
+ | # an NFS mounted storage. | ||
+ | # | ||
# -------------------------------------------------------------------------- # | # -------------------------------------------------------------------------- # | ||
# Version | # Version | ||
Zeile 221: | Zeile 234: | ||
# CUSTOM - Backup-Files. | # CUSTOM - Backup-Files. | ||
+ | TMP_FOLDER='/ | ||
DIR_BACKUP='/ | DIR_BACKUP='/ | ||
FILE_BACKUP=dovecot_backup_`date ' | FILE_BACKUP=dovecot_backup_`date ' | ||
Zeile 264: | Zeile 278: | ||
CHOWN_COMMAND=`command -v chown` | CHOWN_COMMAND=`command -v chown` | ||
CHMOD_COMMAND=`command -v chmod` | CHMOD_COMMAND=`command -v chmod` | ||
+ | MKTEMP_COMMAND=`command -v mktemp` | ||
GREP_COMMAND=`command -v grep` | GREP_COMMAND=`command -v grep` | ||
+ | MV_COMMAND=`which --skip-alias mv` | ||
FILE_LOCK='/ | FILE_LOCK='/ | ||
FILE_LOG='/ | FILE_LOG='/ | ||
Zeile 401: | Zeile 417: | ||
log " | log " | ||
log "" | log "" | ||
+ | log " | ||
log " | log " | ||
log "" | log "" | ||
Zeile 421: | Zeile 438: | ||
checkcommand $CHMOD_COMMAND | checkcommand $CHMOD_COMMAND | ||
checkcommand $GREP_COMMAND | checkcommand $GREP_COMMAND | ||
+ | checkcommand $MKTEMP_COMMAND | ||
+ | checkcommand $MV_COMMAND | ||
checkcommand $PROG_SENDMAIL | checkcommand $PROG_SENDMAIL | ||
Zeile 436: | Zeile 455: | ||
fi | fi | ||
- | # Check if DIR_BACKUP | + | # Check if DIR_BACKUP |
if [ ! -d " | if [ ! -d " | ||
logline "Check if DIR_BACKUP exists " false | logline "Check if DIR_BACKUP exists " false | ||
$MKDIR_COMMAND -p $DIR_BACKUP | $MKDIR_COMMAND -p $DIR_BACKUP | ||
- | | + | if [ " |
+ | logline " | ||
+ | error 21 | ||
+ | else | ||
+ | logline " | ||
+ | fi | ||
else | else | ||
logline "Check if DIR_BACKUP exists " true | logline "Check if DIR_BACKUP exists " true | ||
Zeile 508: | Zeile 532: | ||
headerblock "Run backup $SCRIPT_NAME " | headerblock "Run backup $SCRIPT_NAME " | ||
log "" | log "" | ||
+ | |||
+ | # Check if TMP_FOLDER directory path NOT exists, else create it. | ||
+ | if [ ! -d " | ||
+ | logline "Check if TMP_FOLDER exists " false | ||
+ | $MKDIR_COMMAND -p $TMP_FOLDER | ||
+ | if [ " | ||
+ | logline " | ||
+ | error 40 | ||
+ | else | ||
+ | logline " | ||
+ | fi | ||
+ | else | ||
+ | logline "Check if TMP_FOLDER exists " true | ||
+ | fi | ||
+ | |||
+ | # Make temporary directory DIR_TEMP inside TMP_FOLDER. | ||
+ | DIR_TEMP=$($MKTEMP_COMMAND -d -p $TMP_FOLDER -t $SCRIPT_NAME-XXXXXXXXXXXX) | ||
+ | if [ " | ||
+ | logline " | ||
+ | error 41 | ||
+ | else | ||
+ | logline " | ||
+ | log "" | ||
+ | fi | ||
+ | |||
+ | # Set rights permissions to DIR_TEMP. | ||
+ | $CHOWN_COMMAND -R $MAILDIR_USER: | ||
# Start real backup process for all users. | # Start real backup process for all users. | ||
Zeile 516: | Zeile 567: | ||
DOMAINPART=${users# | DOMAINPART=${users# | ||
LOCALPART=${users%%@*} | LOCALPART=${users%%@*} | ||
- | LOCATION=" | + | LOCATION=" |
USERPART=" | USERPART=" | ||
Zeile 539: | Zeile 590: | ||
log " | log " | ||
- | cd $DIR_BACKUP | + | cd $DIR_TEMP |
log " | log " | ||
$TAR_COMMAND -cvzf $users-$FILE_BACKUP $USERPART --atime-preserve --preserve-permissions | $TAR_COMMAND -cvzf $users-$FILE_BACKUP $USERPART --atime-preserve --preserve-permissions | ||
- | log " | + | log " |
- | (ls -t $users-$FILE_DELETE|head -n $BACKUPFILES_DELETE; | + | $RM_COMMAND "$DIR_TEMP/$DOMAINPART" |
if [ " | if [ " | ||
- | logline " | + | logline " |
else | else | ||
- | logline " | + | logline " |
fi | fi | ||
- | log "Delete mailbox files for user: $users ..." | + | log "Copying archive file for user: $users ..." |
- | $RM_COMMAND | + | $MV_COMMAND |
if [ " | if [ " | ||
- | logline "Delete mailbox files at: $DIR_BACKUP " false | + | logline "Move archive file for user to: $DIR_BACKUP " false |
else | else | ||
- | logline " | + | logline |
+ | fi | ||
+ | |||
+ | cd $DIR_BACKUP | ||
+ | |||
+ | log " | ||
+ | (ls -t $users-$FILE_DELETE|head -n $BACKUPFILES_DELETE; | ||
+ | if [ " | ||
+ | logline " | ||
+ | else | ||
+ | logline " | ||
fi | fi | ||
fi | fi | ||
Zeile 564: | Zeile 625: | ||
log "" | log "" | ||
done | done | ||
+ | |||
+ | # Delete the temporary folder DIR_TEMP. | ||
+ | $RM_COMMAND $DIR_TEMP -rf | ||
+ | if [ " | ||
+ | logline " | ||
+ | error 42 | ||
+ | else | ||
+ | logline " | ||
+ | log "" | ||
+ | fi | ||
# Set owner and rights permissions to backup directory and backup files. | # Set owner and rights permissions to backup directory and backup files. |
tachtler/dovecot_backup_-_skript.txt · Zuletzt geändert: 2023/07/05 19:07 von klaus