1. Script backup All user mariadb
2. script backup custom user mariadb
3. script script_backup_alluser_marinadb.sh
[root@teguhth-all backupuser]# pwd
/data/backupuser
[root@teguhth-all backupuser]# cat script_backup_alluser_marinadb.sh
#!/bin/bash
ipsvr=$(hostname -I | awk '{print $1}' | sed "s/ //g");
userx="admin"
passx="xxx"
#MYSQLX="mysql -h$ipsvr -u$userx -p$passx -N -B"
MYSQLX="mariadb -h$ipsvr -u$userx -p$passx -N -B"
OUTFILE="backup_users_marinadb_${ipsvr}_$(date +%Y%m%d_%H%M%S).sql"
echo "-- Backup User dan Privileges" > "$OUTFILE"
echo "-- Generated : $(date)" >> "$OUTFILE"
echo "" >> "$OUTFILE"
# Ambil semua user
$MYSQLX -e "SELECT CONCAT(User,'|',Host) FROM mysql.user ORDER BY User,Host;" | while IFS='|' read USER HOST
do
echo "-- ====================================================" >> "$OUTFILE"
echo "-- USER : '$USER'@'$HOST'" >> "$OUTFILE"
echo "-- ====================================================" >> "$OUTFILE"
echo "" >> "$OUTFILE"
########################################
# SHOW CREATE USER
########################################
CREATE_USER=$($MYSQLX -e "SHOW CREATE USER '$USER'@'$HOST';" | cut -f2)
if [ ! -z "$CREATE_USER" ]; then
echo "$CREATE_USER;" >> "$OUTFILE"
fi
echo "" >> "$OUTFILE"
########################################
# SHOW GRANTS
########################################
$MYSQLX -e "SHOW GRANTS FOR '$USER'@'$HOST';" | while read GRANT
do
echo "${GRANT};" >> "$OUTFILE"
done
echo "" >> "$OUTFILE"
done
echo "" >> "$OUTFILE"
echo "-- Copyright by : Teguh Triharto" >> "$OUTFILE"
echo "-- Website : https://www.linkedin.com/in/teguhth" >> "$OUTFILE"
echo "" >> "$OUTFILE"
echo "Backup selesai."
echo "File : $OUTFILE"
[root@teguhth-all backupuser]#
4. script script_backup_custom_marinadb.sh
[root@teguhth-all backupuser]# pwd
/data/backupuser
[root@teguhth-all backupuser]# cat script_backup_custom_marinadb.sh
#!/bin/bash
ipsvr=$(hostname -I | awk '{print $1}' | sed "s/ //g");
userx="admin"
passx="xxx"
#MYSQLX="mysql -h$ipsvr -u$userx -p$passx -N -B"
MYSQLX="mariadb -h$ipsvr -u$userx -p$passx -N -B"
OUTFILE="custom_backup_users_marinadb_${ipsvr}_$(date +%Y%m%d_%H%M%S).sql"
echo "-- Backup User dan Privileges" > "$OUTFILE"
echo "-- Generated : $(date)" >> "$OUTFILE"
echo "" >> "$OUTFILE"
usercust="$1"
if [ -z "$usercust" ]; then
echo "Usage:"
echo " $0 all"
echo " $0 admin"
echo " $0 admin,aisyah"
exit 1
fi
if [ "$usercust" = "all" ]; then
echo "Backup semua user..."
SQL="SELECT CONCAT(User,'|',Host)
FROM mysql.user
ORDER BY User,Host;"
else
echo "Backup user : $usercust"
usercust=$(echo "$usercust" | sed "s/,/','/g")
SQL="SELECT CONCAT(User,'|',Host)
FROM mysql.user
WHERE User IN ('$usercust')
ORDER BY User,Host;"
fi
$MYSQLX -e "$SQL" | while IFS='|' read USER HOST
do
echo "-- ====================================================" >> "$OUTFILE"
echo "-- USER : '$USER'@'$HOST'" >> "$OUTFILE"
echo "-- ====================================================" >> "$OUTFILE"
echo "" >> "$OUTFILE"
########################################
# SHOW CREATE USER
########################################
CREATE_USER=$($MYSQLX -e "SHOW CREATE USER '$USER'@'$HOST';" | cut -f2-)
if [ -n "$CREATE_USER" ]; then
echo "$CREATE_USER;" >> "$OUTFILE"
fi
echo "" >> "$OUTFILE"
########################################
# SHOW GRANTS
########################################
$MYSQLX -e "SHOW GRANTS FOR '$USER'@'$HOST';" | while read GRANT
do
echo "$GRANT;" >> "$OUTFILE"
done
echo "" >> "$OUTFILE"
done
echo "" >> "$OUTFILE"
echo "-- Copyright by : Teguh Triharto" >> "$OUTFILE"
echo "-- Website : https://www.linkedin.com/in/teguhth" >> "$OUTFILE"
echo "" >> "$OUTFILE"
echo "Backup selesai."
echo "File : $OUTFILE"
[root@teguhth-all backupuser]#




No comments:
Post a Comment