crontab -l
0-59/5 * * * * root /bin/sh /etc/pflogrotate
nano /etc/pflogrotate
#!/bin/sh
PFLOG=/var/log/pf.log
FILE=/var/log/pflog5min.$(date "+%Y%m%d%H%M")
pkill -ALRM -u root -U root -t - -x pflogd
if [ -r $PFLOG ] && [ $(stat -f %z $PFLOG) -gt 24 ]; then
mv $PFLOG $FILE
pkill -HUP -u root -U root -t - -x pflogd
tcpdump -n -e -s 160 -ttt -r $FILE | logger -t pf -p local0.info
rm $FILE
fi
I removed root from script. No result
Can anybody give me exact example
I'd suggest making sure that any references to executables in your scripts have the full path specified. If the scripts are trying to run programs that are installed somewhere like /usr/local/bin or /usr/local/sbin, and are not specifying the full path, then it won't work.
tcpdump
is in /usr/sbin for example.PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
0-59/5 * * * * /etc/pflogrotate
#!/bin/sh
PFLOG=/var/log/pf.log
FILE=/var/log/pflog5min.$(date "+%Y%m%d%H%M")
pkill -ALRM -u root -U root -t - -x pflogd
if [ -r $PFLOG ] && [ $(stat -f %z $PFLOG) -gt 24 ]; then
mv $PFLOG $FILE
pkill -HUP -u root -U root -t - -x pflogd
tcpdump -n -e -s 160 -ttt -r $FILE | logger -t pf -p local0.info
rm $FILE
fi
#!/bin/sh
PFLOG=/var/log/pf.log
FILE=/var/log/pflog5min.$(date "+%Y%m%d%H%M")
pkill -ALRM -u root -U root -t - -x pflogd
if [ -r $PFLOG ] && [ $(/usr/bin/stat -f %z $PFLOG) -gt 24 ]; then
mv $PFLOG $FILE
#touch $PFLOG
/bin/pkill -HUP -u root -U root -t - -x pflogd
/usr/sbin/tcpdump -n -e -s 160 -ttt -r $FILE | /usr/bin/logger -t pf -p local0.info
rm $FILE
fi
echo "cron has executed my script" >> /tmp/crontest