| @@ -0,0 +1,104 @@ | |||
| #!/bin/bash | |||
| function sync_library { | |||
| echo "stop calibre service: 'service calibre-server stop' " | |||
| /usr/sbin/service calibre-server stop | |||
| #echo "wait for 1 sec to make sure calibre stopped" | |||
| #sleep 1 | |||
| #echo "force kill calibre server" | |||
| #pkill -15 -u www-data -f "/opt/calibre/bin/calibre-server" | |||
| echo "sync book data to lawipac.com/var/www/MyBooks" | |||
| rsync -ah --delete /var/www/nextcloud/data/patrick/files/MyBooks/ /var/www/MyBooks/ | |||
| echo "make sure www-data owns /var/www/MyBooks" | |||
| chown www-data:www-data -R /var/www/MyBooks | |||
| echo "check md5sum of metadb" | |||
| CLOUD=`md5sum /var/www/nextcloud/data/patrick/files/MyBooks/metadata.db | awk '{print $1}'` | |||
| WWW=`md5sum /var/www/MyBooks/metadata.db | awk '{print $1}'` | |||
| echo "MD5 of Metadata.db CLOUD=$CLOUD WWW=$WWW " | |||
| if [ $CLOUD != $WWW ]; then | |||
| echo "MD5 mismatched after Sync !! ERROR =========="; | |||
| #send email to sp@lawipac.com to inform the error | |||
| email_failed | |||
| else | |||
| echo "successfully updated book library" | |||
| email_success | |||
| fi | |||
| echo "service calibre-server start" | |||
| #systemctl daemon-reload | |||
| /usr/sbin/service calibre-server start | |||
| } | |||
| function email_failed { | |||
| /usr/sbin/ssmtp -F "书库同步出错" sp@lawipac.com <<EOF | |||
| Subject: Calibre Book Sync Failed | |||
| From: 同步书库出错 <mailer@lawipac.com> | |||
| To: sp@lawipac.com | |||
| MIME-Version:1.0 | |||
| Content-type: text/html; charset=utf-8 | |||
| <p> 经过同步之后的 MD5 不匹配 !!!; </p> | |||
| <p> 云:`md5sum /var/www/nextcloud/data/patrick/files/MyBooks/metadata.db`</p> | |||
| <p> 书库:`md5sum /var/www/MyBooks/metadata.db`</p> | |||
| <b> Please do not reply this email </b> | |||
| Kind Regards < /br> | |||
| lawipac </br> | |||
| `date` </br> | |||
| EOF | |||
| } | |||
| function email_success { | |||
| BOOK_LIST=`calibredb list -s "date:>=1daysago" -ftitle --with-library=/var/www/MyBooks | awk 'NR>1 {printf "<li>%d:%s</li>\n\n", $1,$2 } '` | |||
| #use cat to test locally | |||
| #cat << EOF | |||
| #send email using ssmtp | |||
| /usr/sbin/ssmtp sp@lawipac.com << EOF | |||
| Subject: 新书通知:Calibre Books updated | |||
| From: 成长书库 <calibre-mailer-no-reply@lawipac.com> | |||
| To: sp@lawipac.com | |||
| MIME-Version:1.0 | |||
| Content-type: text/html; charset=utf-8 | |||
| <p align=center></u> 最近(昨天,今天)新增图书: </u> </p> | |||
| <ul> | |||
| $BOOK_LIST | |||
| <ul> | |||
| <h1 align=center> | |||
| <a href="https://lawipac.com/books#library_id=MyBooks&panel=book_list"> 查看书库网页版 </a> | |||
| </h1> | |||
| EOF | |||
| } | |||
| function main () { | |||
| echo "-----------------`date` -------------------------\n"; | |||
| echo "check book library status ..." | |||
| CLOUD=`md5sum /var/www/nextcloud/data/patrick/files/MyBooks/metadata.db | awk '{print $1}'` | |||
| WWW=`md5sum /var/www/MyBooks/metadata.db | awk '{print $1}'` | |||
| if [ $CLOUD != $WWW ]; then | |||
| echo "MD5 MISMATCH update book library ..." | |||
| sync_library | |||
| else | |||
| echo "(matched) skipping update" | |||
| fi | |||
| } | |||
| main | |||
| #email_success | |||
| #email_failed | |||