useful scripts
Backup MySQL
#!/bin/bash
# Load .env file from MY_APP folder
ENV_FILE="/var/www/html/MY_APP/.env"
if [ ! -f "$ENV_FILE" ]; then
echo "The .env was not found on $(dirname "$0")"
exit 1
fi
# Read .env
source "$ENV_FILE"
# Check if the necessary vars are defined
if [ -z "$DB_DATABASE" ] || [ -z "$DB_USERNAME" ] || [ -z "$DB_PASSWORD" ]; then
echo "Error: Variable DB_DATABASE, DB_USERNAME or DB_PASSWORD not defined on .env"
exit 1
fi
# Backup config
BACKUP_DIR="/home/dev/backups"
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_FILE="$BACKUP_DIR/backup_$DB_DATABASE_$DATE.sql"
ZIP_FILE="$BACKUP_DIR/backup_$DB_DATABASE_$DATE.zip"
MAX_BACKUPS=10
# Create folder if it does not exist
mkdir -p "$BACKUP_DIR"
# Dump data on the backup file
mysqldump -u "$DB_USERNAME" -p"$DB_PASSWORD" "$DB_DATABASE" > "$BACKUP_FILE"
# Check if the backup file was created
if [ $? -eq 0 ]; then
echo "Backup of $DB_DATABASE created on: $BACKUP_FILE"
echo "Zipping the .sql file..."
zip "$ZIP_FILE" "$BACKUP_FILE"
echo "Removing temporary file..."
rm "$BACKUP_FILE"
echo "Keeping only the last $MAX_BACKUPS..."
ls -t "$BACKUP_DIR"/backup_$DB_DATABASE_*.zip | tail -n +$((MAX_BACKUPS + 1)) | xargs -I {} rm {}
else
echo "Error on creating a security copy of $DB_DATABASE database!"
exit 1
fi
Monitor open file descriptions
#!/bin/bash
echo '***************************************************'
echo $(git -C /var/www/html/py-ocpp rev-parse --abbrev-ref HEAD)
echo '***************************************************'
date
echo '***************************************************'
echo 'Print out nginx file descriptions:'
#pidof nginx
#echo 'Check how many nginx file descriptions are open'
for pid in $(pidof nginx);
do echo " - PID $pid: $(sudo ls /proc/$pid/fd | wc -l) FDs";
done
echo 'Print out py-ocpp (ocpp_server) file descriptions:'
#ps aux | grep py-ocpp | grep -v grep | awk '{print $2 " "}' | tr -d '\n'
#echo ' '
for pid in $(ps aux | grep py-ocpp | grep -v grep | awk '{print $2 " "}' | tr -d '\n');
do echo " - PID $pid: $(sudo ls /proc/$pid/fd | wc -l) FDs";
done
echo 'Print out py-ocpp (ocpp_server) threads:'
for pid in $(ps aux | grep py-ocpp | grep -v grep | awk '{print $2 " "}' | tr -d '\n');
do echo " - PID $pid: $(cat /proc/$pid/status | grep Threads)";
done
echo '***************************************************'
Last updated
Was this helpful?