add notification and logger script
This commit is contained in:
		
							parent
							
								
									3c1f6bdd00
								
							
						
					
					
						commit
						7cc818be59
					
				
							
								
								
									
										23
									
								
								gotifypush.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								gotifypush.sh
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,23 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
#Use ./gotifypush <title> <message> <priority> <token> <clickurl>
 | 
			
		||||
 | 
			
		||||
#uncomment when use script from cron
 | 
			
		||||
PATH=$PATH:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
 | 
			
		||||
 | 
			
		||||
# Gotify notification parameters
 | 
			
		||||
TITLE=$1
 | 
			
		||||
MESSAGE=$2
 | 
			
		||||
PRIORITY=$3
 | 
			
		||||
URL="https://push.example.com/message?token=$4"
 | 
			
		||||
#if url passed by parameter, set to extras
 | 
			
		||||
if [ -n "$5" ]
 | 
			
		||||
then
 | 
			
		||||
        EXTRAS="{\"client::display\": {\"contentType\": \"text/markdown\"}, \"client::notification\": {\"click\": {  \"url\": \"$5\"}}}"
 | 
			
		||||
else
 | 
			
		||||
        EXTRAS="{\"client::display\": {\"contentType\": \"text/markdown\"}}"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# better curl usage https://github.com/gotify/server/issues/68
 | 
			
		||||
#curl --silent --output /dev/null --show-error --fail -X .... #silent curl execution, no output, only html code if error
 | 
			
		||||
curl -X POST "${URL}" -H "accept: application/json" -H "Content-Type: application/json" -d "{ \"message\": \"${MESSAGE}\", \"priority\": ${PRIORITY}, \"title\": \"${TITLE}\", \"extras\": ${EXTRAS} }"
 | 
			
		||||
							
								
								
									
										24
									
								
								logger.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								logger.sh
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,24 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
PATH=$PATH:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
 | 
			
		||||
 | 
			
		||||
#Use ./logger.sh <logfile>
 | 
			
		||||
 | 
			
		||||
# Log parameters
 | 
			
		||||
REMOTE_SERVER="remote.example.com"
 | 
			
		||||
REMOTE_PATH="/path/to/remote/store/logs/"
 | 
			
		||||
PUBLIC_LOG_URL="https://example.com/hostname/"
 | 
			
		||||
LOG_PRESERVE_DAYS=30
 | 
			
		||||
 | 
			
		||||
# create remote folder to store logs if not exist
 | 
			
		||||
ssh $REMOTE_SERVER "mkdir -p $REMOTE_PATH"
 | 
			
		||||
 | 
			
		||||
# Copy local logfile to remote destination
 | 
			
		||||
scp $1 "$REMOTE_SERVER:$REMOTE_PATH"
 | 
			
		||||
 | 
			
		||||
# Clear x days old remote logs
 | 
			
		||||
ssh $REMOTE_SERVER 'bash -s' << EOF
 | 
			
		||||
find $REMOTE_PATH -maxdepth 1 -mtime +$LOG_PRESERVE_DAYS -exec "rm" -R {} \;
 | 
			
		||||
EOF
 | 
			
		||||
 | 
			
		||||
# return final log url
 | 
			
		||||
echo $PUBLIC_LOG_URL$1
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user