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
|