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`
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
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
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
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.
57 logger Webmon Backup
: Backup finished.
59 /usr
/sbin
/webmon_bkp hourly
#make clean copy
61 logger Webmon Backup Failed
: Something goes wrong. Backup was not created
!
64 logger Webmon Backup Failed
: Directory does not exist or is not writable
!