File: smsresend

package info (click to toggle)
smstools 3.1.15-1.1%2Bdeb8u1
  • links: PTS, VCS
  • area: main
  • in suites: jessie
  • size: 1,656 kB
  • ctags: 879
  • sloc: ansic: 14,857; sh: 1,195; php: 115; makefile: 48; awk: 17
file content (55 lines) | stat: -rwxr-xr-x 1,120 bytes parent folder | download | duplicates (9)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#!/bin/sh
# This is an example script that you can use to resent
# failed messages. The script inserts a counter in the message
# file that is used to ensure that the number of retries
# is limited.
# The script does not need any command line arguments.

smsd_user="smsd"

owner=""
if [ -f /etc/passwd ]; then
  if grep $smsd_user: /etc/passwd >/dev/null; then
    owner=$smsd_user
  fi
fi

failed=/var/spool/sms/failed
outgoing=/var/spool/sms/outgoing
max=5

used=0
notused=0
cd $failed

for file in *; do
  if [ "$file" = "*" ]; then
    echo "No failed files found"
    exit 0
  fi
  retry=`formail -zx Retry: < $file`
  if [ "$retry" ]; then
    retry=`expr $retry + 1`
  else
    retry=1
  fi
  if [ $retry -gt $max ]; then
    notused=`expr $notused + 1`
  else
    used=`expr $used + 1`
    mv $file $file.old
    formail -f -I "Retry: $retry" < $file.old > $file

    if [ "x$owner" != x ]; then
      chown $owner $file
    fi

    mv $file $outgoing
    rm $file.old
  fi
done

echo "$used messages moved again into outgoing spool directory"
echo "$notused messages ignored because of to many retries"

exit 0