feat: Add PID file
This commit is contained in:
parent
f18b9627d5
commit
9eb7f31130
@ -15,7 +15,7 @@ backup files and databases.
|
||||
Синопсис
|
||||
--------
|
||||
|
||||
``boring-backup`` [-cvlhV] FILES..
|
||||
``boring-backup`` [-cvlphV] FILES..
|
||||
|
||||
Описание
|
||||
--------
|
||||
@ -28,6 +28,7 @@ boring-backup - это расширяемая утилита для резерв
|
||||
-c, --config config file.
|
||||
-v, --verbose verbose output.
|
||||
-l, --log-file log file.
|
||||
-p, --pid-file PID file.
|
||||
-h, --help print this help messagea and exit.
|
||||
-V, --version print version and exit.
|
||||
|
||||
|
@ -21,10 +21,12 @@ __config=
|
||||
__verbose=
|
||||
__log_file='./log.txt'
|
||||
__log_date_fmt='%d/%b/%Y:%H:%M:%S %z'
|
||||
__pid_file='/tmp/boring-backup.pid'
|
||||
__tar_options='-acf'
|
||||
__tar_exclude=
|
||||
__name_date_fmt='_%Y%m%d-%H%M'
|
||||
__compression='gzip'
|
||||
|
||||
LIBRARY="${LIBRARY:-./lib}"
|
||||
|
||||
# Source library
|
||||
@ -39,12 +41,13 @@ print_help() {
|
||||
cat <<- EOF
|
||||
Backup files and databases.
|
||||
|
||||
Usage: $0 [-cvlhV] FILES..
|
||||
Usage: $0 [-cvlphV] FILES..
|
||||
|
||||
Options:
|
||||
-c, --config config file.
|
||||
-v, --verbose verbose output.
|
||||
-l, --log-file log file.
|
||||
-l, --log-file log file [default: $__log_file]
|
||||
-p, --pid-file PID file [default: $__pid_file]
|
||||
-h, --help print this help messagea and exit.
|
||||
-V, --version print version and exit.
|
||||
|
||||
@ -101,6 +104,7 @@ while (( "$#" )); do
|
||||
-c|--config|--config=*) optval "$1" "$2"; __config="$val"; shift "$sft";;
|
||||
-v|--verbose) __verbose=1; shift;;
|
||||
-l|--log-file|--log-file=*) optval "$1" "$2"; __log_file="$val"; shift "$sft";;
|
||||
-p|--pid-file|--pid-file=*) optval "$1" "$2"; __pid_file="$val"; shift "$sft";;
|
||||
-h|--help) print_help; exit 1;;
|
||||
-V|--version) echo "$__version"; exit 0;;
|
||||
-*) echo "Error: Unknown option: $1" >&2; exit 1;;
|
||||
@ -112,19 +116,32 @@ done
|
||||
# * Do backups #
|
||||
# ---------------------------------------------------------- #
|
||||
|
||||
log "Backup STARTED"
|
||||
|
||||
# Check PID file
|
||||
if [ -e $__pid_file ]; then
|
||||
if [ -z "$(ps ax -o pid | grep "$(cat $__pid_file)")" ]; then
|
||||
err "Process $(cat $__pid_file) died."
|
||||
rm $__pid_file
|
||||
else
|
||||
err -e "Process $(cat $__pid_file) still running.";
|
||||
fi
|
||||
fi
|
||||
|
||||
# Touch PID file
|
||||
echo $$ > $__pid_file
|
||||
|
||||
# Scripts counter.
|
||||
__count=${#__args[@]} # count
|
||||
__iter=1 # iterator
|
||||
|
||||
# Startup log.
|
||||
date +'Start: %d %b %Y %T %z'
|
||||
log "Backup STARTED"
|
||||
log -p "Library path: $LIBRARY"
|
||||
log -p "Log file: $__log_file"
|
||||
log -p "Configuration file: $([ "$__config" ] || echo not specified && echo "$__config")"
|
||||
log "Scripts to process (${__count}): ${__args[@]}"
|
||||
|
||||
|
||||
for script in "${__args[@]}"; do
|
||||
# Initialise variables
|
||||
__user_script="$script"
|
||||
@ -176,3 +193,6 @@ done
|
||||
|
||||
log "Backup FINISHED"
|
||||
echo -e "\nBackup [Done]"
|
||||
|
||||
# Remove PID file
|
||||
rm $__pid_file
|
||||
|
Loading…
Reference in New Issue
Block a user