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 0
Ostatnio edytowany przez shiver25 (2016-02-25 11:43:32)
Offline