Skip to content

Commit a101b0c

Browse files
updates and refactoring
1 parent bb39ef2 commit a101b0c

File tree

2 files changed

+53
-91
lines changed

2 files changed

+53
-91
lines changed

backup/backup_lxc_and_filesystem_path/backup_container.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ fi
186186

187187
if [[ -z $PASSWORD_FILE_PATH ]]; then
188188
echo "Error! Password path/file wasn't specified."
189-
usage_eror
189+
usage_error
190190
fi
191191

192192
if [[ ! -f "$PASSWORD_FILE_PATH" ]]; then

backup/backup_lxc_and_filesystem_path/backup_path_tar_gpg.sh

Lines changed: 52 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -39,23 +39,32 @@
3939
# actions with this script are at your own risk.
4040

4141
usage_error() {
42-
echo "Error: unrecognized option(s): $POSITIONAL"
43-
echo ""
44-
echo "Usage:"
45-
echo " -a|--action backup|restore"
46-
echo " -s|--source|--source-path /path/to/source/folder/or/file"
47-
echo " (Remember that you should set /path/to/file in encrypt and no compression mode)"
48-
echo " -d|--destination|--destination-path /path/to/destination/folder"
49-
echo " -f|--filename some_filename"
50-
echo " -p|--password some_password"
51-
echo " -e|--excludelist /path/to/filename_of_list_to_exclude.txt"
52-
echo " --encrypt"
53-
echo " --compress"
54-
echo " --clean-destination"
55-
echo " --debug"
42+
cat <<EOF >&2
43+
Error: unrecognized option(s): $POSITIONAL
44+
45+
Usage:
46+
-a|--action backup|restore
47+
-s|--source|--source-path /path/to/source/folder/or/file
48+
(Remember that you should set /path/to/file in encrypt and no compression mode)
49+
-d|--destination|--destination-path /path/to/destination/folder
50+
-f|--filename some_filename
51+
-p|--password some_password
52+
-e|--exclude-list /path/to/filename_of_list_to_exclude.txt
53+
--encrypt
54+
--compress
55+
--clean-destination
56+
--debug
57+
EOF
5658
exit 1
5759
}
5860

61+
clean_destination() {
62+
$CLEAN_DESTINATION && (
63+
echo "Removing previous $1 file"
64+
rm -f "$1"
65+
)
66+
}
67+
5968
FILENAME=""
6069
COMPRESS_EXCLUDE=""
6170
ENCRYPT=false
@@ -69,33 +78,27 @@ while [[ $# -gt 0 ]]; do
6978
case $key in
7079
-a | --action)
7180
ACTION="$2"
72-
shift
73-
shift
81+
shift 2
7482
;;
7583
-s | --source | --source-path)
7684
SOURCE_PATH="$2"
77-
shift
78-
shift
85+
shift 2
7986
;;
8087
-d | --destination | --destination-path)
8188
DESTINATION_PATH="$2"
82-
shift
83-
shift
89+
shift 2
8490
;;
8591
-f | --filename)
8692
FILENAME="$2"
87-
shift
88-
shift
93+
shift 2
8994
;;
9095
-p | --password)
9196
PASSWORD="$2"
92-
shift
93-
shift
97+
shift 2
9498
;;
95-
-e | --excludelist)
99+
-e | --exclude-list)
96100
COMPRESS_EXCLUDE="--exclude-from=$2"
97-
shift
98-
shift
101+
shift 2
99102
;;
100103
--encrypt)
101104
ENCRYPT=true
@@ -123,31 +126,16 @@ done
123126

124127
set -- "${POSITIONAL[@]}" # restore positional parameters
125128

126-
if [[ -z $SOURCE_PATH ]]; then
127-
SOURCE_PATH=$(pwd)
128-
fi
129-
if [[ -z $DESTINATION_PATH ]]; then
130-
DESTINATION_PATH=$(pwd)
131-
fi
129+
FULL_SOURCE_PATH="${SOURCE_PATH:-"$(pwd)/$FILENAME"}"
130+
FULL_DESTINATION_PATH="${DESTINATION_PATH:-"$(pwd)/$FILENAME"}"
131+
CURRENT_PATH="$(pwd)"
132132

133-
echo "DATE = $(date)"
134-
echo "ACTION = ${ACTION}"
135-
echo "SOURCE PATH = ${SOURCE_PATH}"
136-
echo "DESTINATION PATH = ${DESTINATION_PATH}"
137-
echo "ENCRYPT = ${ENCRYPT}"
138-
echo "CLEAN DESTINATION = ${CLEAN_DESTINATION}"
139-
echo "COMPRESS = ${COMPRESS}"
140-
# shellcheck disable=SC2001
141-
echo "PASSWORD = $(echo $$PASSWORD | sed s/\./*/g)"
142-
143-
FULL_DESTINATION_PATH="${DESTINATION_PATH}/${FILENAME}"
144-
FULL_SOURCE_PATH="${SOURCE_PATH}/${FILENAME}"
145-
CURRENT_PATH=$(pwd)
146-
147-
echo "FILENAME = ${FILENAME}"
148-
echo "CURRENT PATH = ${CURRENT_PATH}"
149-
echo "COMPRESS EXTRA ARGS = ${COMPRESS_EXCLUDE}"
150-
echo ""
133+
for v in DATE ACTION ENCRYPT CLEAN_DESTINATION COMPRESS FILENAME CURRENT PATH COMPRESS EXTRA ARGS; do
134+
printf '%-20s %s\n' "$v" "${!v}"
135+
done
136+
printf '%-20s %s\n' SOURCE_PATH "$(dirname "$FULL_SOURCE_PATH")"
137+
printf '%-20s %s\n' DESTINATION_PATH "$(dirname "$FULL_DESTINATION_PATH")"
138+
printf '%-20s %s\n' PASSWORD "$(echo $PASSWORD | sed s/\./*/g)"
151139

152140
# error handling
153141
if [[ -n $1 ]]; then
@@ -162,7 +150,7 @@ fi
162150

163151
if [[ -z $FILENAME ]]; then
164152
echo "Error! Filename wasn't specified."
165-
usage_eror
153+
usage_error
166154
fi
167155

168156
if [[ $ENCRYPT && -z $PASSWORD ]]; then
@@ -184,71 +172,45 @@ set -e
184172

185173
# backup or restore with compression and no encryption
186174
if [[ $ACTION == "backup" ]] && $COMPRESS && ! $ENCRYPT; then
187-
if $CLEAN_DESTINATION; then
188-
if [[ -f "$FULL_DESTINATION_PATH" ]]; then
189-
echo "Removing previous ${FULL_DESTINATION_PATH} file"
190-
rm -f "$FULL_DESTINATION_PATH"
191-
fi
192-
fi
193-
cd "$SOURCE_PATH" || exit 1
194-
tar "$COMPRESS_EXCLUDE" -czvf "$FULL_DESTINATION_PATH" . --numeric-owner
175+
clean_destination "$FULL_DESTINATION_PATH"
176+
tar $COMPRESS_EXCLUDE --numeric-owner -C "$(dirname "$FULL_SOURCE_PATH")" -czvf "$FULL_DESTINATION_PATH" .
195177
fi
196178
if [[ $ACTION == "restore" ]] && $COMPRESS && ! $ENCRYPT; then
197179
if $CLEAN_DESTINATION; then
198180
echo "Unable to clean-up path $DESTINATION_PATH in '-a restore --compress' mode."
199181
fi
200-
cd "$DESTINATION_PATH" || exit 1
201-
tar --numeric-owner -xzvf "$FULL_SOURCE_PATH" --directory "$(pwd)"
182+
tar --numeric-owner -C "$(dirname "$FULL_DESTINATION_PATH")" -xzvf "$FULL_SOURCE_PATH"
202183
fi
203184

204185
# backup or restore with compression and encryption
205186
if $ENCRYPT && $COMPRESS; then
206187
if [[ $ACTION == "backup" ]]; then
207-
if $CLEAN_DESTINATION; then
208-
if [[ -f "$FULL_DESTINATION_PATH.enc" ]]; then
209-
echo "Removing previous ${FULL_DESTINATION_PATH}.enc file"
210-
rm -f "$FULL_DESTINATION_PATH".enc
211-
fi
212-
fi
213-
cd "$SOURCE_PATH" || exit 1
214-
tar "$COMPRESS_EXCLUDE" --numeric-owner -czvf - . | gpg2 --symmetric --batch --yes \
215-
--passphrase "$PASSWORD" --output "$FULL_DESTINATION_PATH".enc --yes --force-mdc
188+
clean_destination "$FULL_DESTINATION_PATH".enc
189+
tar $COMPRESS_EXCLUDE --numeric-owner -C "$(dirname "$FULL_SOURCE_PATH")" -czvf - . | gpg2 --symmetric --batch \
190+
--yes --passphrase "$PASSWORD" --output "$FULL_DESTINATION_PATH".enc --force-mdc
216191
fi
217192
if [[ $ACTION == "restore" ]]; then
218193
if $CLEAN_DESTINATION; then
219194
echo "Unable to clean-up path $DESTINATION_PATH in '-a restore --encrypt --compress' mode."
220195
fi
221-
cd "$DESTINATION_PATH" || exit 1
222-
echo "123"
223196
gpg2 --decrypt --batch --yes --passphrase "$PASSWORD" "$FULL_SOURCE_PATH".enc |
224-
tar --numeric-owner -xzvf -
197+
tar --numeric-owner -C "$(dirname "$FULL_DESTINATION_PATH")" -xzvf -
225198
fi
226199
fi
227200

228201
# backup or restore with encryption and no compression
229202
if $ENCRYPT && ! $COMPRESS; then
230203
if [[ $ACTION == "backup" ]]; then
231-
if $CLEAN_DESTINATION; then
232-
if [[ -f "$FULL_DESTINATION_PATH.enc" ]]; then
233-
echo "Removing previous ${FULL_DESTINATION_PATH}.enc file"
234-
rm -f "$FULL_DESTINATION_PATH".enc
235-
fi
236-
fi
237-
cd "$SOURCE_PATH" || exit 1
238-
gpg2 --symmetric --batch --yes --passphrase "$PASSWORD" \
239-
--output "$FULL_DESTINATION_PATH".enc --force-mdc "$FILENAME"
204+
clean_destination "$FULL_DESTINATION_PATH".enc
205+
gpg2 --symmetric --batch --yes --passphrase "$PASSWORD" --output "$FULL_DESTINATION_PATH".enc --force-mdc \
206+
"$FULL_SOURCE_PATH"
240207
rm -f "$FULL_DESTINATION_PATH"
241208
fi
242209
if [[ $ACTION == "restore" ]]; then
243-
if $CLEAN_DESTINATION; then
244-
if [[ -f "$FULL_DESTINATION_PATH" ]]; then
245-
echo "Removing $FULL_DESTINATION_PATH file"
246-
rm -f "$FULL_DESTINATION_PATH"
247-
fi
248-
fi
249-
cd "$DESTINATION_PATH" || exit 1
210+
clean_destination "$FULL_DESTINATION_PATH"
250211
gpg2 --decrypt --batch --yes --passphrase "$PASSWORD" \
251212
--output "$FILENAME" "$FULL_SOURCE_PATH".enc
213+
gpg2 --decrypt --batch --yes --passphrase "$PASSWORD" --output "$FULL_DESTINATION_PATH" "$FULL_SOURCE_PATH".enc
252214
fi
253215
fi
254216

0 commit comments

Comments
 (0)