49 lines
		
	
	
		
			911 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			911 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/bash
 | |
| 
 | |
| ################################################################################
 | |
| #
 | |
| # Marcin Wozniak
 | |
| # Last edit: 2023-05-05
 | |
| #
 | |
| # shellcheck disable=1091
 | |
| ################################################################################
 | |
| 
 | |
| set -u
 | |
| set -e
 | |
| 
 | |
| # Colours
 | |
| RED='\033[0;31m'
 | |
| GREEN='\033[0;0;32m'
 | |
| NC='\033[0m'
 | |
| 
 | |
| ADDR=$1
 | |
| LOG_FILE="pinger-$ADDR-$(date -I).log"
 | |
| 
 | |
| function timestamp() {
 | |
|     echo -e "${GREEN}[+]${NC} $(date +'%F %T') [INFO] $*"
 | |
| }
 | |
| 
 | |
| function err() {
 | |
|     echo -e "${RED}[-] $(date +'%F %T') [ERROR] $*${NC}" >&2
 | |
| }
 | |
| 
 | |
| function command_start() {
 | |
|     timestamp "Command $* has been started."
 | |
|     if ! "$@"; then
 | |
|         err "Command $* went wrong."
 | |
|         # sendmailerr
 | |
|         exit 0
 | |
|     fi
 | |
|     timestamp "Command $* has been ended."
 | |
| }
 | |
| 
 | |
| function pinger() {
 | |
|     ping "$ADDR" | while read pong; do timestamp "$pong"; done
 | |
| }
 | |
| 
 | |
| function main() {
 | |
|     command_start pinger
 | |
| }
 | |
| 
 | |
| main | tee "$LOG_FILE"
 |