mirror of
https://github.com/eliasstepanik/ark-ac-server-tools.git
synced 2026-01-24 23:38:28 +00:00
Allow single cronjob to execute command on multiple instances
This commit is contained in:
parent
4a2699bf2e
commit
fc4d6442be
@ -2386,6 +2386,7 @@ doInstallCronJob(){
|
|||||||
minute='0'
|
minute='0'
|
||||||
cmdopts="${arkCronExtraOpts}"
|
cmdopts="${arkCronExtraOpts}"
|
||||||
cmdargs=""
|
cmdargs=""
|
||||||
|
instargs=""
|
||||||
output=">/dev/null 2>&1"
|
output=">/dev/null 2>&1"
|
||||||
arkmanagerpath="${0}"
|
arkmanagerpath="${0}"
|
||||||
command="$1"
|
command="$1"
|
||||||
@ -2414,15 +2415,23 @@ doInstallCronJob(){
|
|||||||
cmdopts="${cmdopts} $(printf "%q" "${opt}")"
|
cmdopts="${cmdopts} $(printf "%q" "${opt}")"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
cmdargs="${args} $(printf "%q" "${opt}")"
|
cmdargs="${cmdargs} $(printf "%q" "${opt}")"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
cronjob="${minute} ${hour} * * * ${arkmanagerpath} --cronjob ${command} @${instance} ${cmdopts} --args ${cmdargs} -- ${output}"
|
if [ -n "$allinstances" ]; then
|
||||||
|
instargs="@all"
|
||||||
|
else
|
||||||
|
for inst in "${instances[@]}"; do
|
||||||
|
instargs="${instargs} $(printf "%q" "@${inst}")"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
cronjob="${minute} ${hour} * * * ${arkmanagerpath} --cronjob ${command} ${instargs} ${cmdopts} --args ${cmdargs} -- ${output}"
|
||||||
|
|
||||||
(crontab -l | \
|
(crontab -l | \
|
||||||
sed -e "\\# [*] [*] [*] ${arkmanagerpath} --cronjob ${command} @${instance} #d";
|
sed -e "\\# [*] [*] [*] ${arkmanagerpath} --cronjob ${command} ${instargs} #d";
|
||||||
echo "${cronjob}" ) | \
|
echo "${cronjob}" ) | \
|
||||||
crontab -
|
crontab -
|
||||||
}
|
}
|
||||||
@ -2801,6 +2810,18 @@ main(){
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Handle cronjob commands specially
|
||||||
|
case "$command" in
|
||||||
|
install-cronjob)
|
||||||
|
doInstallCronJob "${args[@]}" "${options[@]}" "$@"
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
remove-cronjob)
|
||||||
|
doRemoveCronJob "${args[@]}"
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
# Handle all instances being requested
|
# Handle all instances being requested
|
||||||
if [[ "$allinstances" == "yes" ]]; then
|
if [[ "$allinstances" == "yes" ]]; then
|
||||||
instances=( $(getAllInstanceNames) )
|
instances=( $(getAllInstanceNames) )
|
||||||
@ -2879,12 +2900,6 @@ main(){
|
|||||||
status)
|
status)
|
||||||
printStatus
|
printStatus
|
||||||
;;
|
;;
|
||||||
install-cronjob)
|
|
||||||
doInstallCronJob "${args[@]}" "${options[@]}"
|
|
||||||
;;
|
|
||||||
remove-cronjob)
|
|
||||||
doRemoveCronJob "${args[@]}"
|
|
||||||
;;
|
|
||||||
*)
|
*)
|
||||||
echo -n "arkmanager v${arkstVersion}: unknown command '$command' specified"
|
echo -n "arkmanager v${arkstVersion}: unknown command '$command' specified"
|
||||||
showUsage
|
showUsage
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user