|
| 1 | +#!/bin/bash |
| 2 | + |
| 3 | +DEFAULT_PING_COUNT=4 |
| 4 | +DEFAULT_TELNET_RETRY=4 |
| 5 | +DEFAULT_LOG_FILENAME="logs.log" |
| 6 | + |
| 7 | +# function to generate cron job string |
| 8 | +generate_cron_job_string() { |
| 9 | + cron_pattern=$1 |
| 10 | + ping_check_filename=$2 |
| 11 | + ping_count=$3 |
| 12 | + telnet_retry=$4 |
| 13 | + log_filename=$5 |
| 14 | + |
| 15 | + cron_job_string= "$cron_pattern /usr/bin/python /home/[email protected]/OPT/pingTester/Test/Temp/cron_job/python2port.py -f /home/[email protected]/OPT/pingTester/Test/Temp/cron_job/$ping_check_filename -pc $ping_count -tr $telnet_retry &>/home/[email protected]/OPT/pingTester/Test/Temp/cron_job/cron_output/$log_filename" |
| 16 | + |
| 17 | + echo "$cron_job_string" |
| 18 | +} |
| 19 | + |
| 20 | +# function to increment log filename |
| 21 | +increment_log_filename() { |
| 22 | + log_filename=$1 |
| 23 | + |
| 24 | + if [[ $log_filename == $DEFAULT_LOG_FILENAME ]]; then |
| 25 | + new_log_filename="logs2.log" |
| 26 | + else |
| 27 | + log_number=$(echo "$log_filename" | sed 's/[^0-9]*//g') |
| 28 | + new_log_number=$((log_number+1)) |
| 29 | + new_log_filename="logs$new_log_number.log" |
| 30 | + fi |
| 31 | + |
| 32 | + echo "$new_log_filename" |
| 33 | +} |
| 34 | + |
| 35 | +# prompt user to remove existing cron jobs |
| 36 | +read -p "Do you want to remove existing cron jobs? (y/n): " remove_existing |
| 37 | + |
| 38 | +if [[ $remove_existing == "y" ]]; then |
| 39 | + # remove existing cron jobs |
| 40 | + crontab -r |
| 41 | +fi |
| 42 | + |
| 43 | +while true; do |
| 44 | + # prompt user for input |
| 45 | + read -p "Enter cron pattern (e.g. 58 11 * * *): " cron_pattern |
| 46 | + read -p "Enter ping check filename: " ping_check_filename |
| 47 | + read -p "Enter ping count (default $DEFAULT_PING_COUNT): " ping_count_input |
| 48 | + ping_count=${ping_count_input:-$DEFAULT_PING_COUNT} |
| 49 | + read -p "Enter telnet retry (default $DEFAULT_TELNET_RETRY): " telnet_retry_input |
| 50 | + telnet_retry=${telnet_retry_input:-$DEFAULT_TELNET_RETRY} |
| 51 | + read -p "Enter log filename (default $DEFAULT_LOG_FILENAME): " log_filename |
| 52 | + log_filename=${log_filename:-$DEFAULT_LOG_FILENAME} |
| 53 | + |
| 54 | + # generate cron job string and output to user |
| 55 | + cron_job_string=$(generate_cron_job_string "$cron_pattern" "$ping_check_filename" "$ping_count" "$telnet_retry" "$log_filename") |
| 56 | + echo "Cron job string: $cron_job_string" |
| 57 | + |
| 58 | + # prompt user to build another cron job |
| 59 | + read -p "Do you want to build another cron job? (y/n): " build_another |
| 60 | + |
| 61 | + # exit loop if user does not want to build another cron job |
| 62 | + if [[ $build_another == "n" ]]; then |
| 63 | + break |
| 64 | + fi |
| 65 | + |
| 66 | + # increment log filename for next iteration |
| 67 | + DEFAULT_LOG_FILENAME=$(increment_log_filename "$log_filename") |
| 68 | +done |
| 69 | + |
| 70 | +# set cron jobs |
| 71 | +echo "$cron_job_string" | crontab - |
0 commit comments