Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Witam,
Głowię się nad moim skryptem w bashu juz dlugo. I nie mogę sobie z nim poradzić. Może znajdzie się ktoś kto mi podpowie jak to ugryźć. Jestem początkujący więc pewnie porobi lem błędy myślowe czy coś.
Założenie generalnie jest takie. Jeśli wysłalismy maila to nastepny możemy wysłać za X czasu dopiero. Coby nie spamować:)
#!/bin/bash
#Check if the lockfile exists and is older than one minute
EMAIL="ble@ble.pl"
HOST_NAME=`echo $HOSTNAME | awk -F'.' '{print $1}'`
USER=`exim -bp | grep "<" | awk {'print $5'} | cut -d "<" -f 2 | cut -d ">" -f 1 | sort -n | uniq -c | sort -n | awk '$1 >10' | awk {'print $2'} | cut -d "(" -f 2 | cut -d ")" -f 1`
touch /tmp/$USER.lock
exim -bp | grep "<" | awk {'print $NF $5'} | cut -d "<" -f 2 | cut -d ">" -f 1 | cut -d "(" -f 2 | cut -d ")" -f 1 | sort -n | uniq -c | sort -n | awk '$1 > 10' > tmp1.txt
MINUTES=1
LOCKFILE=/tmp/$USER.lock
if [ -f $LOCKFILE ]; then
echo "Lockfile Exists"
filestr=`find $LOCKFILE -mmin +$MINUTES -print`
if [ "$filestr" = "" ]; then
#echo "Lockfile is not older than $MINUTES minutes, exiting!"
exit 1
else
#echo "Lockfile is older than $MINUTES minutes, ignoring it and proceeding normal execution!"
while read mailff emailff; do
mail -s "[spam] $HOST_NAME $emailff" $EMAIL<<EOF
Maili w kolejce: $mailff
EOF
done < tmp1.txt
rm $LOCKFILE
fi
fi
touch $LOCKFILE
##Do your stuff here
echo $LOCKFILE
#rm $LOCKFILE
find /tmp -name "*.lock" -mmin +$MINUTES -exec rm -rf {} \;
exit 0Ostatnio edytowany przez shiver25 (2016-02-25 11:43:32)
Offline