Remove TCP Vegas support (ARM7)
[tomato.git] / release / src-rt-6.x.4708 / router / others / webmon_bkp
blob68653592b02299f80ac48d33f8bac65e54f680bf
1 #!/bin/sh
4 # Copyright (C) 2013 shibby
7 if [ `nvram get log_wm` == "1" -a `nvram get webmon_bkp` == "1" ]; then #only if enabled
9 BKP_DIR=`nvram get webmon_dir`
10 DATA=`date +%Y%m%d_%H%M`
11 ACTION=$1
13 # remove last character from BKP_DIR if it is "/"
14 if [ `echo $BKP_DIR | sed -e 's/\(^.*\)\(.$\)/\2/'` == "/" ]; then
15 echo $DIR | sed 's/.$//'
19 if [ "$ACTION" == "add" ]; then #create init job after webmon start
20 if [ `cru l | grep webmon | wc -l` == "0" ]; then
21 cru a webmon_bkp "0 0 */1 * * /usr/sbin/webmon_bkp"
22 cru a webmon_tmp "59 * * * * /usr/sbin/webmon_bkp hourly"
25 if [ -f "$BKP_DIR/webmon_recent_domains" -o -f "$BKP_DIR/webmon_recent_searches" ]; then
26 echo "" > /dev/null 2>&1
27 else
28 /usr/sbin/webmon_bkp hourly #make first copy
31 elif [ "$ACTION" == "hourly" ]; then #make a copy every hour
32 cp /proc/webmon_recent_domains $BKP_DIR/webmon_recent_domains > /dev/null 2>&1
33 cp /proc/webmon_recent_searches $BKP_DIR/webmon_recent_searches > /dev/null 2>&1
34 else
35 touch $BKP_DIR/$DATA > /dev/null 2>&1 #try create a file (check directory rw permission)
37 if [ -f "$BKP_DIR/$DATA" ]; then #directory exists and is writable
38 rm $BKP_DIR/$DATA
40 cat $BKP_DIR/webmon_recent_domains | awk '{t=$1; "date -d @\""t"\" \"+%Y-%m-%d %H:%M:%S\"" | getline d;print d"\t"$2"\t"$3 }' >> $BKP_DIR/domain-$DATA.log
41 tar -czf $BKP_DIR/domain-$DATA.log.tar.gz $BKP_DIR/domain-$DATA.log > /dev/null 2>&1
42 rm $BKP_DIR/domain-$DATA.log
44 cat $BKP_DIR/webmon_recent_searches | awk '{t=$1; "date -d @\""t"\" \"+%Y-%m-%d %H:%M:%S\"" | getline d;print d"\t"$2"\t"$3 }' >> $BKP_DIR/search-$DATA.log
45 tar -czf $BKP_DIR/search-$DATA.log.tar.gz $BKP_DIR/search-$DATA.log > /dev/null 2>&1
46 rm $BKP_DIR/search-$DATA.log
48 if [ -f "$BKP_DIR/domain-$DATA.log.tar.gz" -a -f "$BKP_DIR/search-$DATA.log.tar.gz" ]; then
49 if [ `nvram get webmon_shrink` == "1" ]; then
50 iptables -t filter -A monitor -p tcp -m webmon --clear_search --clear_domain
52 #restart firewall to reload monitor rules
53 service firewall restart
55 logger Webmon Backup: Backup finished. Log cleared.
56 else
57 logger Webmon Backup: Backup finished.
59 /usr/sbin/webmon_bkp hourly #make clean copy
60 else
61 logger Webmon Backup Failed: Something goes wrong. Backup was not created!
63 else
64 logger Webmon Backup Failed: Directory does not exist or is not writable!