Backup files to an IMAP mail folder
Sending many backup emails can get your SMTP account throttled. Saving attachments as IMAP drafts avoids that.
Idea
- Tar the files you want under
/tmp/diabak/… splitinto 10 MB chunks- For each chunk, run a small Java helper that uploads the message to the Drafts folder over IMAPS
Cron script sketch
Save as /etc/cron.daily/diabak.sh (edit TOEMAIL, PASSWORD, DIR, etc.):
#!/bin/bash
TOEMAIL="bak@example.com"
PASSWORD="xxx"
DIR='wordpress'
YYYYMMDD=$(date +%Y%m%d)
SUBJECT="DiaBak_of_${DIR}_${YYYYMMDD}"
TMP="/tmp/diabak/${DIR}"
ATTTMP="/tmp/diabakatt/${DIR}"
rm -rf "$TMP" && mkdir -p "$TMP"
# copy files to backup into $TMP ...
rm -rf "$ATTTMP" && mkdir -p "$ATTTMP"
cd "$ATTTMP"
tar zcPf backup.tar.gz "$TMP"
rm -rf "$TMP"
split -b 10m -a 3 -d backup.tar.gz "${SUBJECT}.part"
rm -f backup.tar.gz
for file in *; do
java -jar SaveEmailtoDraft.jar \
-to backup@qq.com \
-subject "$SUBJECT" \
-text backup@vip.qq.com \
-smtphost smtp.qq.com \
-imaphost imap.qq.com \
-user "$TOEMAIL" \
-password "$PASSWORD" \
-filename "$file"
sleep 30
done
rm -rf "$ATTTMP"