自動備份mysql資料庫腳本
從centos7.0開始,系統中自帶的mysql資料庫包,改為mariadb資料庫,
MariaDB資料庫概述:MariaDB資料庫管理系統是MySQL的一個分支,主要由開源社區在維護,采用GPL授權許可MariaDB的目的是完全兼容MySQL,包括API和命令列,使之能輕松成為MySQL的代替品,MariaDB由MySQL的創始人Michael
Widenius(邁克爾·維德紐斯)主導開發,他早前曾以10億美元的價格,將自己創建的公司MySQL
AB賣給了SUN,此后,隨著SUN被甲骨文收購,MySQL的所有權也落入Oracle的手中,MariaDB名稱來自Michael
Widenius的女兒Maria(瑪麗亞)的名字,
甲骨文公司收購了MySQL后,有將MySQL閉源的潛在風險,因此社區采用分支的方式來避開這個風險,
過去一年中,大型互聯網用戶以及Linux發行商紛紛拋棄MySQL,轉投MariaDB陣營,MariaDB是目前最受關注的MySQL資料庫衍生版,也被視為開源資料庫MySQL的替代品,
安裝mariadb資料庫:
[root@xuegod63 ~]# yum -y install mariadb mariadb-server
# mariadb 是mysql的客戶端命令 ; mariadb-server 是mysql服務端命令
[root@xuegod63 ~]# rpm -ql mariadb
[root@xuegod63 ~]# systemctl start mariadb
登錄mysql:
[root@xuegod63 ~]# mysqladmin -u root password "123456" #給root用戶配置一個密碼123456
[root@xuegod63 ~]# mysql -u root -p123456 #登錄mysql資料庫
MariaDB [(none)]> show databases;
MariaDB [(none)]> create database xuegod ; #創建xuegod資料庫
MariaDB [(none)]> use xuegod; #選擇資料庫
MariaDB [xuegod]> create table user (id int); #創建user表,只有一個id欄位
MariaDB [xuegod]> insert into user values(1); #插入一條記錄,id欄位值1
MariaDB [xuegod]> insert into user values(2); #插入一條記錄,id欄位值2
MariaDB [xuegod]> select * from user; #查看表中的資料
+------+
| id |
+------+
| 1 |
| 2 |
+------+
mysql自動化備份腳本:
思路:
1、檢查一下運行環境: 目錄是否存在,時間,權限,用戶
2、運行要執行的命令:備份,匯出資料,,,
3、把命令執行程序中的沒有用的檔案洗掉一下
4、彈出命令運行成功的訊息
[root@localhost shell]# vim mysql-back-auto.sh
#!/bin/bash
# 自動備份mysql腳本
# 定義變數
BAKDIR=/data/backup/mysql
MYSQL_DATABASE=xuegod
FILENAME=${MYSQL_DATABASE}_`date +%Y-%m-%d`.sql
MYSQL_USER=root
MYSQL_PASSWORD=123456
# 腳本必須是root用戶才能運行
if [ $UID -ne 0 ];then
echo 腳本必須root用戶運行
exit 0
fi
# 判斷目錄是否存在,不存在則新建,否則如果備份檔案存在則退出腳本
if [ ! -d $BAKDIR ];then
mkdir -p $BAKDIR
elif [ -f $BAKDIR/${FILENAME}.tar.gz ];then
echo "備份檔案已存在"
exit 1
fi
#使用mysqldump備份資料庫
/usr/bin/mysqldump -u${MYSQL_USER} -p${MYSQL_PASSWORD} ${MYSQL_DATABASE} > ${BAKDIR}/${FILENAME}
cd $BAKDIR && tar -czf ${FILENAME}.tar.gz ${FILENAME}
#查找備份目錄下以.sql結尾的檔案并洗掉(不建議)
#[ $? -eq 0 ] && find $BAKDIR -type f -name *.sql -exec rm -rf {} \;
#打包命令執行成功了,提示成功,然后洗掉100天以前的備份檔案
[ $? -eq 0 ] && echo "$FILENAME 資料庫備份成功"
cd $BAKDIR && find . -type f -mtime +100 -exec rm -rf {} \;
ls $BAKDIR
tar tvf $BAKDIR/${FILENAME}.tar.gz
加入計劃任務
crontab -e
0 3 * * * /bin/bash /root/mysql-back-auto.sh
nginx編譯腳本
此nginx腳本中使用了函式功能,讓腳本具有更強的可讀性
[root@xuegod63 ~]# vim setup_nginx.sh
#!/bin/bash
#編譯安裝nginx-1.18.0
#定義變數
prefix=/usr/local/nginx
setup_file=nginx-1.18.0.tar.gz
setup_dir=/root/
setup_version=nginx-1.18.0
setup_url=http://nginx.org/download/nginx-1.18.0.tar.gz
#檢查檔案是否存在,不存在則下載
check_file(){
if [ ! -f ${setup_dir}${setup_file} ];then
cd ${setup_dir} && wget ${setup_url}
else
cd ${setup_dir}
echo "${setup_dir}${setup_file}存在,繼續編譯安裝步驟"
fi
if [ ! -d ${prefix} ];then
mkdir -p /usr/local/nginx
else
echo "${prefix}存在"
fi
}
make1(){
check_file;
if [ -f ${setup_dir}${setup_file} ];then
tar -xvf ${setup_dir}${setup_file}
if [ $? -eq 0 ];then
echo "解壓成功"
cd ${setup_dir}${setup_version}
echo "進入${PWD}目錄"
yum install -y pcre-devel zlib-devel
./configure --prefix=${prefix}
make -j 4 && make install
if [ $? -eq 0 ]; then
echo "編譯完成"
exit 0
else
echo "編譯失敗請檢查!"
exit 1
fi
fi
fi
}
make1
[root@xuegod63 ~]# sh setup_nginx.sh
nginx服務啟動腳本
此nginx腳本中使用了函式功能,讓腳本具有更強的可讀性
[root@xuegod63 ~]# vim /etc/init.d/nginx
#!/bin/bash
#chkconfig: 2345 80 90
#description:nginx run
# nginx啟動腳本
PATH_NGINX=/usr/local/nginx #nginx路徑
DESC="nginx daemon" #nginx描述
NAME=nginx
DAEMON=$PATH_NGINX/sbin/$NAME #/usr/local/nginx/sbin/nginx #nginx命令的絕對路徑
PIDFILE=$PATH_NGINX/logs/${NAME}.pid
SCRIPTNAME=/etc/init.d/$NAME
[ -x "$DAEMON" ] || exit 0 #不存在可執行的檔案,則退出
do_start()
{
[ ! -f "${PIDFILE}" ] && ${DAEMON} || echo -n " nginx already running"
ps_aux
}
do_stop()
{
[ -f "${PIDFILE}" ] && $DAEMON -s stop || echo -n " nginx not running"
}
do_reload()
{
$DAEMON -s reload || echo -n "\n nginx can't reload"
}
ps_aux() {
echo ""
ps aux | grep "${NAME}" | grep -v "grep"
}
case "$1" in
start)
echo -n "Starting $DESC: $NAME"
do_start
echo "."
;;
stop)
echo -n "Stopping $DESC: $NAME"
do_stop
echo "."
;;
reload|graceful)
echo -n "Reloading $DESC configuration..."
do_reload
echo "."
;;
restart)
echo -n "Restarting $DESC: $NAME"
do_stop
sleep 1
do_start
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|reload|restart}"
exit 1
;;
esac
exit 0
[root@xuegod63 ~]# chmod +x /etc/init.d/nginx
[root@xuegod63 ~]# chkconfig --add /etc/init.d/nginx
[root@xuegod63 ~]# chkconfig nginx on
[root@xuegod63 ~]# chkconfig --list
[root@xuegod63 ~]# systemctl status nginx
[root@xuegod63 ~]# systemctl start nginx
[root@xuegod63 ~]# systemctl status nginx
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/391425.html
標籤:其他
上一篇:Nginx通俗易懂教程
下一篇:分布式調度架構:兩層調度
