service configuration files that needs to be saved just incase the server got lost someday by the cloud provider.
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

105 lines
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