84 lines
2.0 KiB
Bash
84 lines
2.0 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
set -e # halt execution upon any command failing
|
|
|
|
LOGDIR="/home/smelly/"
|
|
ROTATEDIR="/home/smelly/logs/"
|
|
|
|
###############################
|
|
spin()
|
|
{
|
|
spinner="/|\\-/|\\-"
|
|
while :
|
|
do
|
|
for i in `seq 0 7`
|
|
do
|
|
echo -n "${spinner:$i:1}"
|
|
echo -en "\010"
|
|
sleep 1
|
|
done
|
|
done
|
|
}
|
|
###############################
|
|
|
|
LOGDATE=$(date --rfc-3339=d)
|
|
if [ -f ${ROTATEDIR}${LOGDATE}-vxug-logs.zip ]; then
|
|
echo -e "\e[31mError!\e[0m Log archive for this date already exists!"
|
|
exit
|
|
fi
|
|
if [ -f ${ROTATEDIR}access.${LOGDATE} ]; then
|
|
echo -e "\e[31mError!\e[0m Rotated access log for this date already exists!"
|
|
exit
|
|
fi
|
|
if [ -f ${ROTATEDIR}error.${LOGDATE} ]; then
|
|
echo -e "\e[31mError!\e[0m Rotated access log for this date already exists!"
|
|
exit
|
|
fi
|
|
|
|
cd ${LOGDIR}; pwd
|
|
ls -lah ${LOGDIR}access.log
|
|
ls -lah ${LOGDIR}error.log
|
|
echo -n "Continue rotating these logs?"
|
|
read -r -p " [y/N] " response
|
|
case "$response" in
|
|
[yY][eE][sS]|[yY])
|
|
spin &
|
|
SPID=$!
|
|
trap "kill -9 $SPID" `seq 0 15`
|
|
;;
|
|
*)
|
|
exit
|
|
;;
|
|
esac
|
|
|
|
echo -n "Roating logs..."
|
|
mv ${LOGDIR}access.log ${ROTATEDIR}access.${LOGDATE}
|
|
mv ${LOGDIR}error.log ${ROTATEDIR}error.${LOGDATE}
|
|
echo -e "\e[32mDone! \e[0m"
|
|
|
|
echo -n "Informing nginx..."
|
|
# send signal to nginx to open new log files
|
|
killall -USR1 nginx
|
|
echo -e "\e[32mDone! \e[0m"
|
|
|
|
echo -n "Calculating log checksums..."
|
|
sha256sum ${ROTATEDIR}access.${LOGDATE} >> ${ROTATEDIR}${LOGDATE}.sha256
|
|
sha256sum ${ROTATEDIR}error.${LOGDATE} >> ${ROTATEDIR}${LOGDATE}.sha256
|
|
echo -e "\e[32mDone! \e[0m"
|
|
|
|
echo -n "Zipping old log files..."
|
|
zip -9 ${ROTATEDIR}${LOGDATE}-vxug-logs.zip ${ROTATEDIR}*.${LOGDATE}>>rotate.log
|
|
echo -e "\e[32mDone! \e[0m"
|
|
|
|
echo -n "Testing zip file integrity..."
|
|
zip -T ${ROTATEDIR}${LOGDATE}-vxug-logs.zip>>rotate.log
|
|
echo -e "\e[32mDone! \e[0m"
|
|
|
|
echo -n "Calculating zip file checksum..."
|
|
sha256sum ${ROTATEDIR}${LOGDATE}-vxug-logs.zip >> ${ROTATEDIR}${LOGDATE}-vxug-logs.zip.sha256
|
|
echo -e "\e[32mDone! \e[0m"
|
|
|
|
echo "Cleaning up..."
|
|
rm -v ${ROTATEDIR}*.${LOGDATE}
|
|
echo -e "\e[32mDone! \e[0m"
|