46 lines
1.3 KiB
Bash
Executable file
46 lines
1.3 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
set -e
|
|
|
|
# Default schedules
|
|
import_sched="*/5 * * * *"
|
|
report_sched="0 * * * *"
|
|
analysis_sched="0 0 * * *"
|
|
remove=false
|
|
|
|
usage() {
|
|
echo "Usage: $0 [--import CRON] [--reports CRON] [--analysis CRON] [--remove]"
|
|
}
|
|
|
|
while [ $# -gt 0 ]; do
|
|
case "$1" in
|
|
--import)
|
|
import_sched="$2"; shift 2;;
|
|
--reports)
|
|
report_sched="$2"; shift 2;;
|
|
--analysis)
|
|
analysis_sched="$2"; shift 2;;
|
|
--remove)
|
|
remove=true; shift;;
|
|
-h|--help)
|
|
usage; exit 0;;
|
|
*)
|
|
usage; exit 1;;
|
|
esac
|
|
done
|
|
|
|
repo_dir="$(cd "$(dirname "$0")" && pwd)"
|
|
|
|
if [ "$remove" = true ]; then
|
|
tmp=$(mktemp)
|
|
sudo crontab -l 2>/dev/null | grep -v "# ngxstat import" | grep -v "# ngxstat reports" | grep -v "# ngxstat analysis" > "$tmp" || true
|
|
sudo crontab "$tmp"
|
|
rm -f "$tmp"
|
|
echo "[INFO] Removed ngxstat cron entries"
|
|
exit 0
|
|
fi
|
|
|
|
cron_entries="${import_sched} cd ${repo_dir} && ./run-import.sh # ngxstat import\n${report_sched} cd ${repo_dir} && ./run-reports.sh # ngxstat reports\n${analysis_sched} cd ${repo_dir} && ./run-analysis.sh # ngxstat analysis"
|
|
|
|
( sudo crontab -l 2>/dev/null; echo -e "$cron_entries" ) | sudo crontab -
|
|
|
|
echo "[INFO] Installed ngxstat cron entries"
|