| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- get_next_cron_string() {
- # Parsing config
- curr_str=$(grep "JOB=" $V_USERS/$user/cron.conf|cut -f 2 -d \'|\
- sort -n|tail -n1)
- # Print result
- echo "$((curr_str +1))"
- }
- is_cron_job_free() {
- # Checking record id
- check_job=$(grep "JOB='$job'" $V_USERS/$user/cron.conf)
- if [ ! -z "$check_job" ]; then
- echo "Error: job id exist"
- log_event 'debug' "$E_EXISTS $V_EVENT"
- exit $E_EXISTS
- fi
- }
- sort_cron_jobs() {
- # Defining conf
- conf="$V_USERS/$user/cron.conf"
- cat $conf |sort -n -k 2 -t \' >$conf.tmp
- mv -f $conf.tmp $conf
- }
- sync_cron_jobs() {
- conf="/var/spool/cron/$user"
- # Deleting old data
- rm -f $conf
- # Checking reporting system
- rep=$(grep 'REPORTS=' $V_USERS/$user/user.conf | cut -f 2 -d \')
- if [ "$rep" = 'yes' ]; then
- email=$(grep 'CONTACT=' $V_USERS/$user/user.conf | cut -f 2 -d \')
- echo "MAILTO=$email" >$conf
- fi
- # Reading user cron.conf
- while read line ; do
- # Defining new delimeter
- IFS=$'\n'
- # Parsing key=value
- for key in $(echo $line|sed -e "s/' /'\n/g"); do
- eval ${key%%=*}="${key#*=}"
- done
- if [ "$SUSPEND" = 'no' ] ; then
- # Adding line to system cron
- echo "$MIN $HOUR $DAY $MONTH $WDAY $CMD" |\
- sed -e "s/%quote%/'/g" -e "s/%dots%/:/g" >> $conf
- fi
- done <$V_USERS/$user/cron.conf
- }
- is_job_valid() {
- result=$(grep "JOB='$job'" $V_USERS/$user/cron.conf)
- if [ -z "$result" ]; then
- echo "Error: job id not exists"
- log_event 'debug' "$E_NOTEXIST $V_EVENT"
- exit $E_NOTEXIST
- fi
- }
- del_cron_job() {
- str=$(grep -n "JOB='$job'" $V_USERS/$user/cron.conf|cut -f 1 -d :)
- sed -i "$str d" $V_USERS/$user/cron.conf
- }
- is_job_suspended() {
- # Parsing jobs
- str=$(grep "JOB='$job'" $V_USERS/$user/cron.conf|grep "SUSPEND='yes'" )
- # Checkng key
- if [ ! -z "$str" ]; then
- echo "Error: job suspended"
- log_event 'debug' "$E_SUSPENDED $V_EVENT"
- exit $E_SUSPENDED
- fi
- }
- is_job_unsuspended() {
- # Parsing jobs
- str=$(grep "JOB='$job'" $V_USERS/$user/cron.conf|grep "SUSPEND='no'" )
- # Checkng key
- if [ ! -z "$str" ]; then
- echo "Error: job unsuspended"
- log_event 'debug' "$E_UNSUSPENDED $V_EVENT"
- exit $E_UNSUSPENDED
- fi
- }
- update_cron_job_value() {
- key="$1"
- value="$2"
- # Defining conf
- conf="$V_USERS/$user/cron.conf"
- # Parsing conf
- job_str=$(grep -n "JOB='$job'" $conf)
- str_number=$(echo $job_str | cut -f 1 -d ':')
- str=$(echo $job_str | cut -f 2 -d ':')
- # Parsing key=value
- IFS=$'\n'
- for keys in $(echo $str|sed -e "s/' /'\n/g"); do
- eval ${keys%%=*}=${keys#*=}
- done
- # Defining clean key
- c_key=$(echo "${key//$/}")
- eval old="${key}"
- # Escaping slashes
- old=$(echo "$old" | sed -e 's/\\/\\\\/g' -e 's/&/\\&/g' -e 's/\//\\\//g')
- new=$(echo "$value" | sed -e 's/\\/\\\\/g' -e 's/&/\\&/g' -e 's/\//\\\//g')
- # Updating conf
- sed -i "$str_number s/$c_key='${old//\*/\\*}'/$c_key='${new//\*/\\*}'/g" \
- $conf
- }
- cron_clear_search() {
- # Defining delimeter
- IFS=$'\n'
- # Reading file line by line
- for line in $(grep $search_string $conf); do
- # Defining new delimeter
- IFS=$'\n'
- # Parsing key=value
- for key in $(echo $line|sed -e "s/' /'\n/g"); do
- eval ${key%%=*}=${key#*=}
- done
- # Print result line
- eval echo "$field"
- done
- }
|