Skip to content

Commit e913c07

Browse files
committed
added cron job builder bash script
1 parent d6a6a4d commit e913c07

File tree

1 file changed

+71
-0
lines changed

1 file changed

+71
-0
lines changed

cron_job/cron_builder.sh

+71
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
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

Comments
 (0)