forked from istepanov/docker-mongodump
-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathstart.sh
More file actions
executable file
·36 lines (31 loc) · 805 Bytes
/
start.sh
File metadata and controls
executable file
·36 lines (31 loc) · 805 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/bin/bash
set -e
# Defaults
MONGO_HOST=${MONGO_HOST:-localhost}
MONGO_PORT=${MONGO_PORT:-27017}
CRON_SCHEDULE=${CRON_SCHEDULE:-0 0 * * *}
# General environment
ENV=(
"MONGO_HOST='$MONGO_HOST'"
"MONGO_PORT='$MONGO_PORT'"
"MONGO_USERNAME='$MONGO_USERNAME'"
"MONGO_PASSWORD='$MONGO_PASSWORD'"
"BACKUP_EXPIRE_DAYS='$BACKUP_EXPIRE_DAYS'"
"MONGO_DB_NAMES='$MONGO_DB_NAMES'"
"BACKUP_FILE_NAME='$BACKUP_FILE_NAME'"
)
function joinEnv {
printf "$1%s" "${ENV[@]}"
}
if [[ "$1" == 'no-cron' ]]; then
eval $(joinEnv " ") ./backup.sh
else
LOGFIFO='/var/log/cron.fifo'
if [[ ! -e "$LOGFIFO" ]]; then
mkfifo "$LOGFIFO"
fi
echo -e "$(joinEnv "\n")\n$CRON_SCHEDULE /backup.sh > $LOGFIFO 2>&1" | crontab -
crontab -l
cron
tail -f "$LOGFIFO"
fi