Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- bash-4.2# cat /usr/bin/create-backup-all.sh
- #!/bin/bash
- mysqldump=1 #####создавать дамп всех бд 1 — да; 0 — нет
- filedump=1 #####создавать бекап всех файлов 1 — да; 0 — нет
- upload=1 #### загружать на удалённый сервер? 1 — да; 0 — нет
- user="bortnik"
- pass="ku4ma!"
- remotehost="176.36.123.148" #куда загружать бекапы (указывать только ip) работает только если upload = 1
- ####создание дампа всех БД
- USER="root" #юзер
- PASSWORD="Galaxys7edge" #пароль
- OUTPUT="/backup/`date +%d.%m.%Y`" #путь куда создаются дампы. date +%d.%m.%Y - текущая дата, не рекомендуется менять
- #### создание бекапа cwd директории (поменять на своё)
- filedump=/
- #####################do not editcode bellow#####################
- # check root permissions
- if [ "x$(id -u)" != 'x0' ]; then
- echo 'Error: this script can be executed only by root'
- exit 1
- fi
- echo -e "\n"
- echo -e "Script \e[34m$0\e[0m has successfully started. It can takes a some time. Be patient, please..."
- #echo -e "Script \"$0\" has successfully started. It can takes a some time. Be patient, please..."
- # all code is executing via function to log all errors
- create ()
- {
- echo >> /var/log/$0.log
- echo "=====================================================" >> /var/log/$0.log
- echo "$(date +'%d-%b-%Y %R')" >> /var/log/$0.log
- echo "Script \"$0\" has successfully started..." >> /var/log/$0.log
- echo -e "\n"
- function detectos () {
- if [ -f /etc/redhat-release ];
- then
- yum install -y sshpass ;
- echo -e "$?" >> /var/log/$0.log
- echo -e /var/log/$0.log "\n"
- else
- apt install -y sshpass
- echo /var/log/$0.log sshpass was installed.
- echo -e /var/log/$0.log "\n"
- fi
- }
- detectos 2>&1 >> /var/log/$0.log
- # Create directory if not exist
- function dir () {
- if [[ ! -d $OUTPUT && ! -L $OUTPUT ]]; then
- mkdir -p $OUTPUT && cd $OUTPUT
- fi
- }
- dir
- if [ $mysqldump = "1" ]; then
- databases=`mysql --user=$USER --password=$PASSWORD -e "SHOW DATABASES;" | tr -d "| " | grep -v Database`
- for db in $databases; do
- if [[ "$db" != "information_schema" ]] && [[ "$db" != "performance_schema" ]] && [[ "$db" != _* ]] ; then
- mysqldump --routines --skip-add-locks --user=$USER --password=$PASSWORD --databases $db > $OUTPUT/$db.sql;
- echo -e "Dump \e[34m$db\e[0m was successfully created and located here: \033[1m\e[34m $OUTPUT/$db.sql\e[0m\033[0m" 2>&1
- fi
- done
- fi
- }
- create >> /var/log/$0.log
- echo -e "\n"
- clear
- function output ()
- {
- echo "Dump all DB was created successfully."
- echo " ------"
- echo "Would you like to open log file?"
- echo
- echo "1) Yes"
- echo "2) No"
- echo "3) No, just show me path to log file"
- echo
- read output
- case "$output" in
- "1" | "Yes" | "yes" | "y" )
- echo
- tail -n50 /var/log/$0.log
- ;;
- "2" | "No" | "no" | "n")
- continue
- ;;
- "3")
- echo "/var/log/$0.log"
- ;;
- * )
- echo
- tail -n50 /var/log/$0.log
- ;;
- esac
- }
- output
- if [ $? = "0" ]
- then
- echo -e "\n" 2>&1 >> /var/log/$0.log
- echo -e "Dump all DB was created successfully. Problems was no emerged." >> /var/log/$0.log
- else
- echo -e "\n" 2>&1 >> /var/log/$0.log
- echo -e "Some error has emerged during execute \e[34m$0\e[0m." >> /var/log/$0.log
- fi
- continue
- sleep 1
- function dump_server () {
- echo " "
- echo " ------"
- echo "Would you like to create tar.gz archive of all files of this server?"
- echo
- echo "1) Yes"
- echo "2) No, skip this"
- echo
- read dump_server
- case "$dump_server" in
- "1" | "Yes" | "yes" | "y" )
- cd $OUTPUT && tar cvpzf server_backup.tar.gz --exclude=/proc --exclude=/ztemp --exclude=/media --exclude=/mnt --exclude=/opt --exclude=/srv --exclude=/tmp --exclude=$OUTPUT/server_backup*.tar.gz --one-file-system /
- sleep 1
- echo -e "\n" 2>&1 >> /var/log/$0.log
- echo -e "server_backup.tar.gz was created successfully. Archive with backup is located here: $OUTPUT/server_backup.tar.gz" 2>&1 >> /var/log/$0.log
- ;;
- "2" | "No" | "no" | "n")
- continue
- ;;
- * )
- cd $OUTPUT && tar cvpzf server_backup.tar.gz --exclude=/proc --exclude=/ztemp --exclude=/media --exclude=/mnt --exclude=/opt --exclude=/srv --exclude=/tmp --exclude=$OUTPUT/server_backup*.tar.gz --one-file-system /
- ;;
- esac
- }
- dump_server
- continue
- sleep 1
- continue
- echo -e "\n" 2>&1 >> /var/log/$0.log
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement