diff --git a/README.md b/README.md index 272c192..aa38204 100644 --- a/README.md +++ b/README.md @@ -60,7 +60,7 @@ Next you need to login to your Cloudflare account and generate the API tokens fo - Run `./run.sh` to change it back. It should auto detect your web-facing IP and update the A record accordingly. ## Automate DynamicCloudflareDNS -There are a myriad of ways to automate calling a script at regular intervals on Linux. For brevity I will be covering the cron way. +There are a several ways to automate calling a script at regular intervals on Linux. For brevity I will be covering the cron way. First off, install cron if it's not already installed: ``` @@ -70,15 +70,11 @@ sudo systemctl enable cronie sudo systemctl start cronie ``` -Next, instead of calling run.sh with cron, we will be calling cron.sh. This is basically a wrapper script that will call run.sh, and pipe the output to `$HOME/cron/DynamicCloudflareDNS.log` so we can keep track of IP changes, as well as any errors that are generated. - -To do this follow the instructions below: -- Make any changes you want to the log path in cron.sh -- Run `./cron.sh` and make sure that it generated normal output to the log path (nothing should appear in the terminal window) -- If everything worked, run the following commands replacing nvim with your editor of choice: - - `EDITOR=nvim crontab -e` - - `*/2 * * * * /absolute/path/to/cron.sh` - - Save and exit +Next, run the following commands: +- `EDITOR=nvim crontab -e` +- `*/2 * * * * /absolute/path/to/run.sh >> "${HOME}/cron/DynamicCloudflareDNS.log" 2>&1` + - Modify the paths above to suit your preferances +- Save and exit If you followed the steps above the cron job should run every two minutes. Tail the log file to ensure it's working correctly. diff --git a/cron.sh b/cron.sh deleted file mode 100755 index 4167279..0000000 --- a/cron.sh +++ /dev/null @@ -1,35 +0,0 @@ -#! /usr/bin/env bash - -# Dynamic Cloudflare DNS, a way to automate DNS changes for Cloudflare -# Copyright (C) 2022 Anon -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -# Add the following to your crontab -# EDITOR=nvim crontab -e -# */2 * * * * DynamicCloudflareDNS - -# Get the runtime path of the bot -ABS_PATH="$(readlink -f "$0")" -RUN_DIR="$(dirname "$ABS_PATH")" -LOGS="${HOME}/cron/DynamicCloudflareDNS.log" - -# Relative paths to the virtual environment and main.py -ENTRY='./run.sh' - -# cd into the bot's root path, set up the virtual environment, and run -cd "$RUN_DIR" -mkdir -p "$(dirname "$LOGS")" -"$ENTRY" "$@" >> "$LOGS" 2>&1 -cd - > /dev/null diff --git a/run.sh b/run.sh index bc2d265..f47360f 100755 --- a/run.sh +++ b/run.sh @@ -16,6 +16,10 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . +# Add the following to your crontab to automate this script +# EDITOR=nvim crontab -e +# */2 * * * * /absolute/path/to/run.sh >> "${HOME}/cron/DynamicCloudflareDNS.log" 2>&1 + # Get the runtime path of the bot ABS_PATH="$(readlink -f "$0")" RUN_DIR="$(dirname "$ABS_PATH")"