Просмотр исходного кода

programs to sync book library and send email notifications

master
Gitea 5 лет назад
Родитель
Сommit
17f3079b97
1 измененных файлов: 104 добавлений и 0 удалений
  1. +104
    -0
      lawipac.com/usr/local/bin/mysyncbook.sh

+ 104
- 0
lawipac.com/usr/local/bin/mysyncbook.sh Просмотреть файл

@@ -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

Загрузка…
Отмена
Сохранить