Skip to content

Instantly share code, notes, and snippets.

@stone
Last active April 1, 2017 18:17
Show Gist options
  • Save stone/aa8712bc9539cb879e056fb7e63702ce to your computer and use it in GitHub Desktop.
Save stone/aa8712bc9539cb879e056fb7e63702ce to your computer and use it in GitHub Desktop.
Simple script to collect fermentrack logs and upload them to filebin.net
#!/bin/bash
# Simple script to collect fermentrack logs and upload to filebin.net
# Download to your device running fermentrack and run it by
# bash collectlogs.sh
#
# Fredrik <fredrik@ppo2.se>
BIN="fermentrack"
FPATH="${1:-/home/fermentrack}"
echo "This tool will collect logs and upload to filebin.net"
echo "You need to run it as a user that can use sudo (for collecting nginx log)"
echo
echo "Logs collected:"
echo " /home/fermentrack/fermentrack/log"
echo " /home/fermentrack/fermentrack/upgrade.log"
echo
read -p "Do you wish to upload logs [y/n] (default yes)?" yn
case $yn in
[Nn]* ) exit;;
esac
echo -n "Enter your name/nick to identify your upload and press [ENTER]: "
read name
tmpfile=$(mktemp --suffix ".tgz" /tmp/fermentrack.logs.XXXXXX)||exit
nginx_errorlog=$(mktemp --suffix ".log" /tmp/fermentrack.nginx_error.XXXXXX)||exit
sysinfo=$(mktemp --suffix ".txt" /tmp/fermentrack.sysinfo.XXXXXX)||exit
#nginx error.log last 200 lines
sudo tail -n 200 /var/log/nginx/error.log > ${nginx_errorlog}
#get some basic system information
echo -e "Git Revision: $(cat /home/fermentrack/fermentrack/.git/refs/heads/master)\n\n" >> ${sysinfo}
ps xww -u fermentrack >> ${sysinfo}
tar zcf $tmpfile ${nginx_errorlog} ${sysinfo} ${FPATH}/fermentrack/upgrade.log ${FPATH}/fermentrack/log 2> /dev/null
if [ $? -ne 0 ]; then
echo "Sorry, something went wrong getting logs, if you do not have fermentrack installed"
echo "in the default path: ${FPATH}, restart this script with the homedirectory of the"
echo "fermentrack users, example: ./$0 /home/myuser"
rm ${tmpfile} ${nginx_errorlog} ${sysinfo}
exit 0
fi
curl -s --data-binary "@${tmpfile}" -H "bin: ${BIN}" -H "filename: ${name}-fermentrack_logs.tgz" https://filebin.net/ > /dev/null
if [ $? -ne 0 ]; then
echo "Sorry, Upload failed. you could try to do it manually by running:"
echo "curl -s --data-binary "@${tmpfile}" -H "bin: ${BIN}" -H "filename: ${name}-fermentrack_logs.tgz" https://filebin.net/"
rm ${tmpfile} ${nginx_errorlog} ${sysinfo}
exit 0
fi
echo
echo "Link to uploaded logs: http://filebin.net/${BIN}/${name}-fermentrack_logs.tgz"
echo
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment