service configuration files that needs to be saved just incase the server got lost someday by the cloud provider.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

105 line
2.6KB

  1. #!/bin/bash
  2. function sync_library {
  3. echo "stop calibre service: 'service calibre-server stop' "
  4. /usr/sbin/service calibre-server stop
  5. #echo "wait for 1 sec to make sure calibre stopped"
  6. #sleep 1
  7. #echo "force kill calibre server"
  8. #pkill -15 -u www-data -f "/opt/calibre/bin/calibre-server"
  9. echo "sync book data to lawipac.com/var/www/MyBooks"
  10. rsync -ah --delete /var/www/nextcloud/data/patrick/files/MyBooks/ /var/www/MyBooks/
  11. echo "make sure www-data owns /var/www/MyBooks"
  12. chown www-data:www-data -R /var/www/MyBooks
  13. echo "check md5sum of metadb"
  14. CLOUD=`md5sum /var/www/nextcloud/data/patrick/files/MyBooks/metadata.db | awk '{print $1}'`
  15. WWW=`md5sum /var/www/MyBooks/metadata.db | awk '{print $1}'`
  16. echo "MD5 of Metadata.db CLOUD=$CLOUD WWW=$WWW "
  17. if [ $CLOUD != $WWW ]; then
  18. echo "MD5 mismatched after Sync !! ERROR ==========";
  19. #send email to sp@lawipac.com to inform the error
  20. email_failed
  21. else
  22. echo "successfully updated book library"
  23. email_success
  24. fi
  25. echo "service calibre-server start"
  26. #systemctl daemon-reload
  27. /usr/sbin/service calibre-server start
  28. }
  29. function email_failed {
  30. /usr/sbin/ssmtp -F "书库同步出错" sp@lawipac.com <<EOF
  31. Subject: Calibre Book Sync Failed
  32. From: 同步书库出错 <mailer@lawipac.com>
  33. To: sp@lawipac.com
  34. MIME-Version:1.0
  35. Content-type: text/html; charset=utf-8
  36. <p> 经过同步之后的 MD5 不匹配 !!!; </p>
  37. <p> 云:`md5sum /var/www/nextcloud/data/patrick/files/MyBooks/metadata.db`</p>
  38. <p> 书库:`md5sum /var/www/MyBooks/metadata.db`</p>
  39. <b> Please do not reply this email </b>
  40. Kind Regards < /br>
  41. lawipac </br>
  42. `date` </br>
  43. EOF
  44. }
  45. function email_success {
  46. BOOK_LIST=`calibredb list -s "date:>=1daysago" -ftitle --with-library=/var/www/MyBooks`
  47. #use cat to test locally
  48. #cat << EOF
  49. #send email using ssmtp
  50. /usr/sbin/ssmtp sp@lawipac.com << EOF
  51. Subject: 新书通知:Calibre Books updated
  52. From: 成长书库 <calibre-mailer-no-reply@lawipac.com>
  53. To: sp@lawipac.com
  54. MIME-Version:1.0
  55. Content-type: text/html; charset=utf-8
  56. <p align=center></u> 最近(昨天,今天)新增图书: </u> </p>
  57. <ul>
  58. $BOOK_LIST
  59. <ul>
  60. <h1 align=center>
  61. <a href="https://lawipac.com/books#library_id=MyBooks&panel=book_list"> 查看书库网页版 </a>
  62. </h1>
  63. EOF
  64. }
  65. function main () {
  66. echo "-----------------`date` -------------------------\n";
  67. echo "check book library status ..."
  68. CLOUD=`md5sum /var/www/nextcloud/data/patrick/files/MyBooks/metadata.db | awk '{print $1}'`
  69. WWW=`md5sum /var/www/MyBooks/metadata.db | awk '{print $1}'`
  70. if [ $CLOUD != $WWW ]; then
  71. echo "MD5 MISMATCH update book library ..."
  72. sync_library
  73. else
  74. echo "(matched) skipping update"
  75. fi
  76. }
  77. main
  78. #email_success
  79. #email_failed