Ik heb het volgende awk scriptje, het moet aangeroepen worden met op devolgende manier
iptables -vnxL | getTraffic.awk
Het script ziet er als volgt uit
Als ik het script vanaf de commandline aanroep werkt het perfect. De traffic wordt uitgelezen en aan de database toegevoegd. In de crontab -e van root heb ik hetvolgende staat:
*/5 * * * * /root/traffic/trafficcount.sh
trafficcount.sh is een simpel shellscriptje wat het awk script aanroept met iptables en vervolgens de counters reset. Als ik die regel /root/traffic/trafficcount.sh copy en paste op me console werkt het perfect. Echter in de cronjob werkt het niet. Hij voert hem wel uit, want ik heb hem echo "blaat" >> /var/log/messages laten doen, en dat werkte. Maar hij voegt niet toe aan de database, weet iemand hoe dat kan?
iptables -vnxL | getTraffic.awk
Het script ziet er als volgt uit
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| #!/usr/bin/awk -f
BEGIN {
chain="";
date=systime();
command="";
bytes=0;
pkts=0;
}
/^Chain(.*)/ {
chain = $2;
}
/^ +([0-9]+)(.*)$/ {
pkts=$1;
bytes=$2;
}
END {
command="mysql -uuser -ppassword -Dtraffic -e\"INSERT INTO metingen VALUES ('"chain"', "date", "bytes", "pkts")\"";
system(command);
} |
Als ik het script vanaf de commandline aanroep werkt het perfect. De traffic wordt uitgelezen en aan de database toegevoegd. In de crontab -e van root heb ik hetvolgende staat:
*/5 * * * * /root/traffic/trafficcount.sh
trafficcount.sh is een simpel shellscriptje wat het awk script aanroept met iptables en vervolgens de counters reset. Als ik die regel /root/traffic/trafficcount.sh copy en paste op me console werkt het perfect. Echter in de cronjob werkt het niet. Hij voert hem wel uit, want ik heb hem echo "blaat" >> /var/log/messages laten doen, en dat werkte. Maar hij voegt niet toe aan de database, weet iemand hoe dat kan?