Skip to content

Instantly share code, notes, and snippets.

@linktohack
Last active February 24, 2017 17:52
Show Gist options
  • Save linktohack/85445f948850580afcc98dc4547d9d7e to your computer and use it in GitHub Desktop.
Save linktohack/85445f948850580afcc98dc4547d9d7e to your computer and use it in GitHub Desktop.
Upload Scamark
#!/bin/bash
rm -rf app.log
touch app.log
lxterminal -e 'tail -f app.log' 2>> app.log 1>> app.log &
lxterminal -e 'tail -f /var/log/mysql/error.log' 2>> app.log 1>> app.log &
sudo zerotier-cli join e5cd7a9e1cd6187e 2>> app.log 1>> app.log &
echo '1. Verfier la connexion...'
until ssh -i key [email protected] 'exit'; do
echo -ne '.'
sleep 1
done
echo "2. Attendre l'appareil..."
until ls /media/pi/resin-data 2>> app.log 1>> app.log; do
echo -ne '.'
sleep 1
done
APP_ID=$(ls /media/pi/resin-data/resin-data | head -n1)
MAGASIN=$(jq -r ".magasin" "/media/pi/resin-data/resin-data/${APP_ID}/initialized")
DATE=$(date '+%Y-%M-%d_%H-%m-%S')
echo "* MAGASIN: $MAGASIN"
echo '3. Copier les données en cours...'
sudo service mysql stop 2>> app.log 1>> app.log
sleep 3
sudo killall mysqld 2>> app.log 1>> app.log
sleep 3
sudo cp -rf /var/lib/mysql /var/lib/mysql.bak 2>> app.log 1>> app.log
sudo rm -rf /var/lib/mysql
sudo rsync -aP "/media/pi/resin-data/resin-data/${APP_ID}/mysql/" /var/lib/mysql 2>> app.log 1>> app.log
sudo chown -R mysql:mysql /var/lib/mysql 2>> app.log 1>> app.log
RETRIED=0
echo '4. Attendre le serveur MySQL...'
sudo sh -c '/usr/bin/mysqld_safe -v --skip-grant-tables 2>> app.log 1>> app.log &'
until mysql -uroot -proot -e 'use scamark;' 2>> app.log 1>> app.log; do
echo -ne '.'
(( RETRIED++ ))
echo "RETRIED: $RETRIED"
sleep 1
if [ "$RETRIED" == "9" ]; then
sudo service mysql stop 2>> app.log 1>> app.log
sleep 3
sudo killall mysqld 2>> app.log 1>> app.log
sleep 3
sudo sh -c '/usr/bin/mysqld_safe -v --skip-grant-tables 2>> app.log 1>> app.log &'
fi
done
echo '6. Uploader en cours...'
mysqldump -uroot -proot scamark | gzip | tee "$MAGASIN-$DATE.sql.gz" 2>> app.log 1>> app.log
rsync -aP -e "ssh -i key" "$MAGASIN-$DATE.sql.gz" [email protected]: 2>> app.log 1>> app.log
echo "7. Verifier l'intégrité de donner en cours..."
sha256sum "$MAGASIN-$DATE.sql.gz"
ssh -i key [email protected] sha256sum "$MAGASIN-$DATE.sql.gz"
rm "$MAGASIN-$DATE.sql.gz"
echo '8. FINI'
ping 0.0.0.0 2>> app.log 1>> app.log
# vim:ts=4:sw=4:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment