⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 regular_run

📁 GSM猫管理程序
💻
字号:
#!/bin/bash# SMS Server Tools 3.# Sample script for using a regular run feature.# See run.html for more details.# The first part is going to the eventhandler:# The following code stores delivery timestamp to the sent messageif [ "$1" = "REPORT" ]; then  SENTDIR=/var/spool/sms/sent  if grep "Status: 0" $2 >/dev/null; then    FROM=`formail -zx From: < $2`    RECEIVED=`formail -zx Received: < $2`    TMPFILE=`mktemp /tmp/smsd_XXXXXX`    formail -I "" < $2 | sed -e"1,2d" > $TMPFILE    MESSAGE_ID=`formail -zX Message_id: < $TMPFILE`    grep -lx "$MESSAGE_ID" $SENTDIR/* > $TMPFILE    cat $TMPFILE | while read FNAME; do      OLDRECEIVED=`formail -zx Received: < ${FNAME}`      if [ "$OLDRECEIVED" = "" ]; then        TO=`formail -zx To: < ${FNAME}`        if [ "$TO" = "$FROM" ]; then          TMPFILE2=`mktemp /tmp/smsd_XXXXXX`          cp ${FNAME} $TMPFILE2          formail -f -I "Received: $RECEIVED" < $TMPFILE2 > ${FNAME}          unlink $TMPFILE2        fi      fi    done     unlink $TMPFILE  fifi# The second part tries to find undelivered messages and sends them# to the alternate number if it is described.max_delay=600 #seconds, 1800 is 30 minutes.SENTDIR=/var/spool/sms/sentOUTGOINGDIR=/var/spool/sms/outgoingTMPFILE=`mktemp /tmp/smsd_XXXXXX`send2alternate=0rename_alternate=0grep -l ^Alternate_to: $SENTDIR/* > $TMPFILEcat $TMPFILE | while read FNAME; do  if ! test -f "${FNAME}.LOCK" ; then    ALT_TO=`formail -zx Alternate_to: < ${FNAME}`    if [ "$ALT_TO" != "" ]; then      MSG_ID=`formail -zx Message_id: < ${FNAME}`      if [ "$MSG_ID" != "" ]; then        RECEIVED=`formail -zx Received: < ${FNAME}`        if [ "$RECEIVED" = "" ]; then          #This message is not yet received          SENT=`formail -zx Sent: < ${FNAME}`          if [ "$SENT" = "" ]; then            #Hmmm... No Sent: timestamp? Will resend now.            send2alternate=1          else            #How long this message has been waiting?            cur_timestamp=`date +%s`            msg_timestamp=`date +%s -d "$SENT"`            time_diff=`expr $cur_timestamp - $msg_timestamp`             if [ $time_diff -gt $max_delay ]; then              send2alternate=1            fi          fi        else          #This message is now received          rename_alternate=1        fi      fi      if [ $send2alternate -gt 0 ]; then        TMPFILE2=`mktemp /tmp/smsd_XXXXXX`        formail -f -I Alternate_to: -i "To: $ALT_TO" < ${FNAME} > $TMPFILE2        TMPFILE3=`mktemp $OUTGOINGDIR/regr_XXXXXX`        echo "$$" > $TMPFILE3.LOCK        mv $TMPFILE2 $TMPFILE3        rm $TMPFILE3.LOCK        rename_alternate=1      fi      if [ $rename_alternate -gt 0 ]; then        #Alternate number is not effective anymore:        TMPFILE2=`mktemp /tmp/smsd_XXXXXX`        cp ${FNAME} $TMPFILE2        formail -f -R Alternate_to: Old-Alternate_to: < $TMPFILE2 > ${FNAME}        unlink $TMPFILE2      fi    fi  fidoneunlink $TMPFILEexit 0

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -