|
|
- # Shell Scripts
-
- You can easily add SITE_NAME monitoring to a shell script. All you
- have to do is make a HTTP request at the end of the script.
- [curl](https://curl.haxx.se/docs/manpage.html) and
- [wget](https://www.gnu.org/software/wget/manual/wget.html)
- are two common command line HTTP clients you can use.
-
- ```bash
- # Sending a HTTP GET request with curl:
- curl --retry 3 PING_URL
-
- # Silent version (no stdout/stderr output unless curl hits an error):
- curl -fsS --retry 3 PING_URL
-
- # Sending a HTTP GET request with wget:
- wget PING_URL -O /dev/null
- ```
-
- ## Signalling Failure from Shell Scripts
-
- You can append `/fail` to any ping URL and use the resulting URL to actively
- signal a failure. The below example:
-
- * runs `/usr/bin/certbot renew`
- * if the certbot command is successful (exit code 0), send HTTP GET to `PING_URL`
- * otherwise, send HTTP GET to `PING_URL/fail`
-
- ```bash
- #!/bin/sh
-
- # Payload here:
- /usr/bin/certbot renew
- # Ping SITE_NAME
- curl --retry 3 "PING_URL$([ $? -ne 0 ] && echo -n /fail)"
- ```
-
- ## Logging Command Output
-
- When pinging with HTTP POST, you can put extra diagnostic information in request
- body. If the request body looks like a valid UTF-8 string, SITE_NAME
- will accept and store first 10KB of the request body.
-
- In the below example, certbot's output is captured and submitted via HTTP POST:
-
- ```bash
- #!/bin/sh
-
- m=$(/usr/bin/certbot renew 2>&1)
- curl -fsS --retry 3 -X POST --data-raw "$m" PING_URL
- ```
|