mirror of
https://github.com/yavook/kiwi-cron.git
synced 2024-11-21 15:03:01 +00:00
modularity
This commit is contained in:
parent
965dc71dbf
commit
718ddec618
5 changed files with 40 additions and 55 deletions
|
@ -1,5 +1,9 @@
|
|||
#!/bin/sh
|
||||
|
||||
# replace crontab, run crond
|
||||
/usr/local/libexec/kiwi-cron/schedule_dirs | crontab -
|
||||
# replace crontab
|
||||
/usr/local/libexec/kiwi-cron/schedule_dirs \
|
||||
| /usr/local/libexec/kiwi-cron/print_crontab \
|
||||
| crontab -
|
||||
|
||||
# run crond
|
||||
exec crond -fd 8
|
|
@ -1,8 +1,5 @@
|
|||
#!/bin/sh
|
||||
|
||||
this_script="$( readlink -f "${0}" )"
|
||||
this_dir="${this_script%/*}"
|
||||
|
||||
cs_every="${1:-1}"
|
||||
cs_units="${2}"
|
||||
cs_command="${3}"
|
||||
|
@ -36,27 +33,21 @@ cs_rand_month=$(( RANDOM % 2 + 1 ))
|
|||
|
||||
case "${cs_units}" in
|
||||
minute)
|
||||
"${this_dir}/print_cron_schedule" \
|
||||
"*${cs_every}" "*" "*" "*" "*" "${cs_command}"
|
||||
echo "*${cs_every}" "*" "*" "*" "*" "${cs_command}"
|
||||
;;
|
||||
hour)
|
||||
"${this_dir}/print_cron_schedule" \
|
||||
"${cs_rand_min}" "*${cs_every}" "*" "*" "*" "${cs_command}"
|
||||
echo "${cs_rand_min}" "*${cs_every}" "*" "*" "*" "${cs_command}"
|
||||
;;
|
||||
day)
|
||||
"${this_dir}/print_cron_schedule" \
|
||||
"${cs_rand_min}" "${cs_rand_hour}" "*${cs_every}" "*" "*" "${cs_command}"
|
||||
echo "${cs_rand_min}" "${cs_rand_hour}" "*${cs_every}" "*" "*" "${cs_command}"
|
||||
;;
|
||||
week)
|
||||
"${this_dir}/print_cron_schedule" \
|
||||
"${cs_rand_min}" "${cs_rand_hour}" "*" "*" "${cs_rand_weekday}" "${cs_command}"
|
||||
echo "${cs_rand_min}" "${cs_rand_hour}" "*" "*" "${cs_rand_weekday}" "${cs_command}"
|
||||
;;
|
||||
month)
|
||||
"${this_dir}/print_cron_schedule" \
|
||||
"${cs_rand_min}" "${cs_rand_hour}" "${cs_rand_day}" "*${cs_every}" "*" "${cs_command}"
|
||||
echo "${cs_rand_min}" "${cs_rand_hour}" "${cs_rand_day}" "*${cs_every}" "*" "${cs_command}"
|
||||
;;
|
||||
year)
|
||||
"${this_dir}/print_cron_schedule" \
|
||||
"${cs_rand_min}" "${cs_rand_hour}" "${cs_rand_day}" "${cs_rand_month}" "*" "${cs_command}"
|
||||
echo "${cs_rand_min}" "${cs_rand_hour}" "${cs_rand_day}" "${cs_rand_month}" "*" "${cs_command}"
|
||||
;;
|
||||
esac
|
||||
|
|
|
@ -1,11 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
pcs_minute="${1}"
|
||||
pcs_hour="${2}"
|
||||
pcs_day="${3}"
|
||||
pcs_month="${4}"
|
||||
pcs_weekday="${5}"
|
||||
pcs_command="${6}"
|
||||
|
||||
printf '%-8s%-8s%-8s%-8s%-8s%s\n' \
|
||||
"${pcs_minute}" "${pcs_hour}" "${pcs_day}" "${pcs_month}" "${pcs_weekday}" "${pcs_command}"
|
|
@ -1,2 +1,28 @@
|
|||
#!/bin/sh
|
||||
|
||||
print_cron_schedule () {
|
||||
pcs_minute="${1}"
|
||||
pcs_hour="${2}"
|
||||
pcs_day="${3}"
|
||||
pcs_month="${4}"
|
||||
pcs_weekday="${5}"
|
||||
pcs_command="${6}"
|
||||
|
||||
printf '%-8s%-8s%-8s%-8s%-8s%s\n' \
|
||||
"${pcs_minute}" "${pcs_hour}" "${pcs_day}" "${pcs_month}" "${pcs_weekday}" "${pcs_command}"
|
||||
}
|
||||
|
||||
# header
|
||||
echo '# crontab generated by kiwi-cron'
|
||||
echo '# generation time: '"$(date)"
|
||||
echo '#'
|
||||
|
||||
# short documentation line
|
||||
print_cron_schedule \
|
||||
"# min" "hour" "day" "month" "weekday" "command"
|
||||
|
||||
# schedules
|
||||
while read -r pc_min pc_hour pc_day pc_month pc_weekday pc_command; do
|
||||
print_cron_schedule \
|
||||
"${pc_min}" "${pc_hour}" "${pc_day}" "${pc_month}" "${pc_weekday}" "${pc_command}"
|
||||
done
|
||||
|
|
|
@ -3,17 +3,6 @@
|
|||
this_script="$( readlink -f "${0}" )"
|
||||
this_dir="${this_script%/*}"
|
||||
|
||||
crontab=''
|
||||
crontab_line () {
|
||||
if [ -z "${crontab}" ]; then
|
||||
crontab="${1}"
|
||||
else
|
||||
crontab="$(
|
||||
printf '%s\n%s' "${crontab}" "${1}";
|
||||
)"
|
||||
fi
|
||||
}
|
||||
|
||||
dir_has_no_files () {
|
||||
dhnf_directory="${1}"
|
||||
|
||||
|
@ -47,14 +36,6 @@ dir_to_unit () {
|
|||
esac
|
||||
}
|
||||
|
||||
crontab_line '# crontab generated by kiwi-cron'
|
||||
crontab_line '# generation time: '"$(date)"
|
||||
crontab_line '#'
|
||||
crontab_line "$(
|
||||
"${this_dir}/print_cron_schedule" \
|
||||
"# min" "hour" "day" "month" "weekday" "command"
|
||||
)"
|
||||
|
||||
# check *ly dirs in "/kiwi-cron" directory
|
||||
schedule_dirs="$(
|
||||
find "/kiwi-cron" -type d -name "*ly" -mindepth 1 -maxdepth 1
|
||||
|
@ -71,9 +52,7 @@ for schedule_dir in ${schedule_dirs}; do
|
|||
units="${dir_name%ly}"
|
||||
units="$( dir_to_unit "${units}" )"
|
||||
|
||||
crontab_line "$(
|
||||
"${this_dir}/create_schedule" "1" "${units}" "run-parts '${schedule_dir}'"
|
||||
)"
|
||||
"${this_dir}/create_schedule" "1" "${units}" "run-parts '${schedule_dir}'"
|
||||
done
|
||||
|
||||
# check dirs in "/kiwi-cron/every" directory
|
||||
|
@ -93,9 +72,5 @@ for schedule_dir in ${every_schedule_dirs}; do
|
|||
units="$( echo "${dir_name}" | awk -F_ '{print $2}' )"
|
||||
units="${units%s}"
|
||||
|
||||
crontab_line "$(
|
||||
"${this_dir}/create_schedule" "${every}" "${units}" "run-parts '${schedule_dir}'"
|
||||
)"
|
||||
"${this_dir}/create_schedule" "${every}" "${units}" "run-parts '${schedule_dir}'"
|
||||
done
|
||||
|
||||
echo "${crontab}"
|
||||
|
|
Loading…
Reference in a new issue