-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathentrypoint.sh
executable file
·32 lines (25 loc) · 1.3 KB
/
entrypoint.sh
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
#!/bin/bash
# Creating the backup script
cat <<EOF > /backup.sh
#!/bin/bash
DATE=\`date +"%Y%m%d"\`
TIME=\`date +"%d-%b-%Y %T"\`
echo "[\${TIME}] Backing up \${DATABASE_HOST}:\${DATABASE_PORT}/\${DATABASE_NAME}..."
/usr/bin/mysqldump --host \${DATABASE_HOST} --port \${DATABASE_PORT} -u \${DATABASE_USER} -p\${DATABASE_PASSWORD} -y \${DATABASE_NAME} > /tmp/backup_\${DATABASE_NAME}_latest.sql
cd /tmp; zip backup_\${DATABASE_NAME}_latest.sql.zip backup_\${DATABASE_NAME}_latest.sql; cd /
cp /tmp/backup_\${DATABASE_NAME}_latest.sql.zip /tmp/backup_\${DATABASE_NAME}_\${DATE}.sql.zip
echo "[\${TIME}] Copying to \${REMOTE_SERVICE}:\${REMOTE_FOLDER}..."
/usr/bin/rclone copy /tmp/ \${REMOTE_SERVICE}:\${REMOTE_FOLDER} --include "*.sql.zip"
rm -rf /tmp/*.sql*
/usr/bin/rclone delete \${REMOTE_SERVICE}:\${REMOTE_FOLDER} --include "*.sql.zip" --min-age \${REMOTE_KEEP_TIME}
echo "[\${TIME}] Backed and copied up!"
EOF
# Creating the CRON file.
cat <<EOF > /var/spool/cron/crontabs/root
${CRON_EXPRESION} /bin/bash /backup.sh >> /var/log/cron.log 2>&1
EOF
# Setting permissions and running
chmod 0644 /var/spool/cron/crontabs/root
touch /var/log/cron.log
echo "[`date +"%d-%b-%Y %T"`] Starting CRON: ${DATABASE_HOST}:${DATABASE_PORT}/${DATABASE_NAME} -> ${REMOTE_SERVICE}:${REMOTE_FOLDER}"
crond && tail -f /var/log/cron.log