當前位置:首頁 » 編程軟體 » shell腳本備份資料庫

shell腳本備份資料庫

發布時間: 2025-07-20 02:12:55

『壹』 linux自動備份網站和資料庫,到另外伺服器上,為當前用戶創建定時任務

linux自動備份網站和資料庫,到另外伺服器上,為當前用戶創建定時任務兩台伺服器111,和117伺服器,每天完成111伺服器上網站和資料庫自動備份到117伺服器上1:我的111伺服器上是當前用戶:sxA:
查看當前用戶的計劃任務:crontab
-l是查看當前用戶的任務用
vi
crontab
-e
是為sxw用戶創建一個計劃任務第一行:每天3點運行/home/sxw/rsync201.sh
shell腳本,第二行:和第三行是每天下午7點運行tar包,gaokaotong和phpcms文件第三行:每天7點22分運行/homesxw/back_up.sh
shell腳本,注意:這里是當前用戶sxw,所以要shell腳本路徑要有用戶sxw許可權,在這里/home/sxw/back_up
shell腳本,是當前用戶sxw用戶的家目錄。B:
111伺服器上/home/sxw/back_up.sh腳本code:-bash-3.2$
vim
/home/sxw/back_up.sh#!/bin/shecho
開始備份資料庫mysqlmp
-u
jeecms
-pjeecms1234
gktcms
>
gktcms.sqlmysqlmp
-u
jeecms
-pjeecms1234
phpcms
>
phpcms.sqlecho
備份資料庫完成,復制到117伺服器端scp
-P
10022
gktcms.sql
[email protected]:/home/zkscp
-P
10022
phpcms.sql
[email protected]:/home/zkscp
-r
-P
10022
/opt/www/www2/phpcms.tar.gz
[email protected]:/home/zk/scp
-r
-P
10022
/opt/www/www2/gaokaotong.tar.gz
[email protected]:/home/zk/echo
發送完成C:
還要在111上做ssh信任,這個可參照ssh資料。很簡單,只需要建立兩個密鑰。2:
117伺服器上/homezk/自動就會多出兩個tar包文件,phpcms.tar.gz
和gaokaotong.tar.gz這里每天自動保存兩個文件,phpcms.tar.gz

gaokaotong.tar.gz文件
這里做了一個shell腳本,保存前兩天的文件,跟上述111伺服器上的建立計劃任務一樣:A:
查看117的計劃任務:
crontabl
-lB:
在查看/home/zk/back.sh
的shell編寫code:[zk@DB2~]$
vi
/home/zk/back.sh#!/bin/shTARFILE=/home/zk/phpcms.tar.gzif
[
-f
$TARFILE
];then
mv
/home/zk/phpcms.tar.gz
/home/zk/phpcms_$(date
+%Y%m%d).tar.gz
#remove
date
file
DATE_B=$(date
-d2
day
ago
+%Y%m%d)
FILENAME=/home/zk/phpcms_$DATE_B.tar.gz
if
[
-f
$FILENAME
];then
rm
-rf
/home/zk/phpcms_$DATE_B.tar.gz
else
echo
沒有可刪除文件
fielse
echo
沒有源文件fi~
結束。

『貳』 MySQL 8自動備份腳本密碼安全警告

MySQL 8自動備份腳本密碼安全警告的解決方法如下

  1. 問題原因

    • 在Shell腳本中直接使用mysqlmp命令並附帶p選項來指定密碼,這觸發了MySQL 8的安全保護機制。MySQL 8不建議在命令行中直接顯示密碼,因為這可能導緻密碼泄露。
  2. 解決方法

    • 修改MySQL配置文件:在MySQL的配置文件/etc/my.cnf中,添加或更新與密碼相關的配置。通常,可以添加[client]部分,並在其中設置user和password選項。
    • 示例配置:ini[client]user=your_mysql_usernamepassword=your_mysql_password # 注意:這里只是示例,不建議在生產環境中明文存儲密碼 更新腳本:在Shell腳本中,去掉mysqlmp命令後的p選項和密碼值。由於已經在配置文件中設置了用戶名和密碼,mysqlmp將自動讀取這些配置。3. 重新執行腳本: 保存對腳本和配置文件的修改後,重新執行備份腳本。此時,MySQL將不再顯示密碼安全警告,因為腳本不再在命令行中直接指定密碼。4. 額外安全措施許可權控制:確保只有授權用戶才能訪問包含資料庫密碼的配置文件和Shell腳本。 日誌審計:啟用並定期檢查資料庫和操作系統的日誌,以檢測任何潛在的安全事件。 定期更換密碼:定期更換資料庫密碼,以減少密碼泄露的風險。通過以上步驟,可以有效解決MySQL 8自動備份腳本中的密碼安全警告問題,並確保備份過程的安全性和可靠性。

『叄』 linux shell腳本執行mysql mysql資料庫在遠程伺服器上

方法一、適合所有格式的mysql資料庫,通過對資料庫導出導進寫個腳本定時執行:
1.導出整個資料庫 mysqlmp -u 用戶名 -p 資料庫名 > 導出的文件名 mysqlmp -u wcnc -p smgp_apps_wcnc > /存放路徑/wcnc.sql
2.導出一個表 mysqlmp -u 用戶名 -p 資料庫名 表名> 導出的文件名 mysqlmp -u wcnc -p smgp_apps_wcnc users> /存放路徑/wcnc_users.sql
3.導出一個資料庫結構 mysqlmp -u wcnc -p -d --add-drop-table smgp_apps_wcnc >/存放路徑/wcnc_db.sql
定義:
-d 沒有數據
--add-drop-table 在每個create語句之前增加一個drop table
4.導入資料庫 常用source 命令 進入mysql資料庫控制台:
如mysql -u root -p mysql>use 資料庫

方法二、針對mysql數據表格式為MyISAM的
假如數據文件在/var/lib/mysql
那麼直接寫個腳本
cp -r /var/lib/mysql /備份到的文件夾路徑

隔機備份用rsync增量,或定時完整備份。

『肆』 如何使用shell腳本每天自動備份mysql資料庫

mysql備份用自帶的備份工具mysqlmp
每天自動執行用cron工具,把mysql的備份命令放在.sh文件裡面
.sh文件放在/etc/cron.daily目錄,就會每天自動執行了。

『伍』 SHELL寫個腳本,以達到每隔2小時對數據進行導出備份~~同時對24小時後的數據進行匯總的腳本~

先寫一個文件,比如叫abc:
#MIN HOUR DAY MONTH DAYOFWEEK COMMAND
#每兩個小時
0 */2 * * * ls

ls只是一個例子,假如你想要執行的備份數據的命令即可,然後在root許可權下:
#crontab file abc
即可

『陸』 如何使用crontab每天自動備份Mysql資料庫

本經驗講解如何在linux伺服器環境下使用crontab來定時執行shell腳本,主要採用的是資料庫自帶的命令mysqlmp;本文使用的是root許可權,僅供參考,真實情況可以自行控制許可權,下面請看具體步驟:
http://jingyan..com/article/11c17a2c796354f446e39ded.html

『柒』 mysql資料庫備份命令mysql數據備份的三種方法

在操作數據過程中,可能會導致數據錯誤,甚至資料庫奔潰,而有效的定時備份能很好地保護資料庫。本篇文章主要講述了幾種方法進行 MySQL 定時備份資料庫。
一. mysqlmp命令備份數據
在MySQL中提供了命令行導出資料庫數據以及文件的一種方便的工具mysqlmp,我們可以通過命令行直接實現資料庫內容的導出mp,首先我們簡單了解一下mysqlmp命令用法:
#MySQLmp常用mysqlmp -u root -p --databases 資料庫1 資料庫2 > xxx.sql
二. mysqlmp常用操作示例
1. 備份全部資料庫的數據和結構
mysqlmp -uroot -p123456 -A > /data/mysqlDump/mydb.sql2.備份全部資料庫的結構(加 -d 參數)
mysqlmp -uroot -p123456 -A -d > /data/mysqlDump/mydb.sql3. 備份全部資料庫的數據(加 -t 參數)
mysqlmp -uroot -p123456 -A -t > /data/mysqlDump/mydb.sql4.備份單個資料庫的數據和結構(,資料庫名mydb)
mysqlmp -uroot-p123456 mydb > /data/mysqlDump/mydb.sql5. 備份單個資料庫的結構
mysqlmp -uroot -p123456 mydb -d > /data/mysqlDump/mydb.sql6. 備份單個資料庫的數據
mysqlmp -uroot -p123456 mydb -t > /data/mysqlDump/mydb.sql7. 備份多個表的數據和結構(數據,結構的單獨備份方法與上同)
mysqlmp -uroot -p123456 mydb t1 t2 > /data/mysqlDump/mydb.sql8. 一次備份多個資料庫
mysqlmp -uroot -p123456 --databases db1 db2 > /data/mysqlDump/mydb.sql三. 還原 MySQL 備份內容有兩種方式還原,第一種是在 MySQL 命令行中,第二種是使用 SHELL 行完成還原
1. 在系統命令行中,輸入如下實現還原:
mysql -uroot -p123456 < /data/mysqlDump/mydb.sql2. 在登錄進入mysql系統中,通過source指令找到對應系統中的文件進行還原:
mysql> source /data/mysqlDump/mydb.sql在 Linux中,通常使用BASH腳本對需要執行的內容進行編寫,加上定時執行命令crontab實現日誌自動化生成。
以下代碼功能就是針對mysql進行備份,配合crontab,實現備份的內容為近一個月(31天)內的每天的mysql資料庫記錄。
編寫BASH維護固定數量備份文件
在Linux中,使用vi或者vim編寫腳本內容並命名為:mysql_mp_script.sh
#!/bin/bash#保存備份個數,備份31天數據number=31#備份保存路徑backup_dir=/root/mysqlbackup#日期dd=`date +%Y-%m-%d-%H-%M-%S`#備份工具tool=mysqlmp#用戶名username=root#密碼password=TankB214#將要備份的資料庫database_name=edoctor#如果文件夾不存在則創建if [ ! -d $backup_dir ];thenmkdir -p $backup_dir;fi#簡單寫法 mysqlmp -u root -p123456 users > /root/mysqlbackup/users-$filename.sql$tool -u $username -p$password $database_name > $backup_dir/$database_name-$dd.sql#寫創建備份日誌echo "create $backup_dir/$database_name-$dd.pm" >> $backup_dir/log.txt#找出需要刪除的備份delfile=`ls -l -crt $backup_dir/*.sql | awk '{print $9 }' | head -1`#判斷現在的備份數量是否大於$numbercount=`ls -l -crt $backup_dir/*.sql | awk '{print $9 }' | wc -l`if [ $count -gt $number ]then#刪除最早生成的備份,只保留number數量的備份rm $delfile#寫刪除文件日誌echo "delete $delfile" >> $backup_dir/log.txtfi如上代碼主要含義如下:
1.首先設置各項參數,例如number最多需要備份的數目,備份路徑,用戶名,密碼等。
2.執行mysqlmp命令保存備份文件,並將操作列印至同目錄下的log.txt中標記操作日誌。
3.定義需要刪除的文件:通過ls命令獲取第九列,即文件名列,再通過實現定義操作時間最晚的那個需要刪除的文件。
4.定義備份數量:通過ls命令加上
統計以sql結尾的文件的行數。
5.如果文件超出限制大小,就刪除最早創建的sql文件
使用crontab定期執行備份腳本
在 Linux 中,周期執行的任務一般由cron這個守護進程來處理[ps -ef|grep cron]。cron讀取一個或多個配置文件,這些配置文件中包含了命令行及其調用時間。cron的配置文件稱為「crontab」,是「cron table」的簡寫。
cron服務
cron是一個 Liunx 下 的定時執行工具,可以在無需人工干預的情況下運行作業。
service crond start //啟動服務
service crond stop //關閉服務
service crond restart //重啟服務
service crond reload //重新載入配置
service crond status //查看服務狀態
crontab語法
crontab命令用於安裝、刪除或者列出用於驅動cron後台進程的表格。用戶把需要執行的命令序列放到crontab文件中以獲得執行。每個用戶都可以有自己的crontab文件。/var/spool/cron下的crontab文件不可以直接創建或者直接修改。該crontab文件是通過crontab命令創建的。
在crontab文件中如何輸入需要執行的命令和時間。該文件中每行都包括六個域,其中前五個域是指定命令被執行的時間,最後一個域是要被執行的命令。每個域之間使用空格或者製表符分隔。
格式如下:
minute hour day-of-month month-of-year day-of-week commands
合法值 00-59 00-23 01-31 01-12 0-6 (0 is sunday)
除了數字還有幾個個特殊的符號就是"*"、"/"和"-"、",",*代表所有的取值范圍內的數字,"/"代表每的意思,"/5"表示每5個單位,"-"代表從某個數字到某個數字,","分開幾個離散的數字。
-l 在標准輸出上顯示當前的crontab。
-r 刪除當前的crontab文件。
-e 使用VISUAL或者EDITOR環境變數所指的編輯器編輯當前的crontab文件。當結束編輯離開時,編輯後的文件將自動安裝。
創建cron腳本
第一步:寫cron腳本文件,命名為mysqlRollBack.cron。
15,30,45,59 * * * * echo "xgmtest....." >> xgmtest.txt 表示,每隔15分鍾,執行列印一次命令
第二步:添加定時任務。執行命令 「crontab crontest.cron」。搞定
第三步:"crontab -l" 查看定時任務是否成功或者檢測/var/spool/cron下是否生成對應cron腳本
注意:這操作是直接替換該用戶下的crontab,而不是新增
定期執行編寫的定時任務腳本(記得先給shell腳本執行許可權)
0 2 * * * /root/mysql_backup_script.sh隨後使用crontab命令定期指令編寫的定時腳本
crontabmysqlRollback.cron再通過命令檢查定時任務是否已創建:
附 crontab 的使用示例:
1. 每天早上6點
0 6 * * * echo "Good morning." >> /tmp/test.txt //注意單純echo,從屏幕上看不到任何輸出,因為cron把任何輸出都email到root的信箱了。2. 每兩個小時
0 */2 * * * echo "Have a break now." >> /tmp/test.txt3. 晚上11點到早上8點之間每兩個小時和早上八點
0 23-7/2,8 * * * echo "Have a good dream" >> /tmp/test.txt4. 每個月的4號和每個禮拜的禮拜一到禮拜三的早上11點
0 11 4 * 1-3 command line5.1 月 1 日早上 4 點
0 4 1 1 * command line SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root //如果出現錯誤,或者有數據輸出,數據作為郵件發給這個帳號 HOME=/6. 每小時執行/etc/cron.hourly內的腳本
01 * * * * root run-parts /etc/cron.hourly7. 每天執行/etc/cron.daily內的腳本
02 4 * * * root run-parts /etc/cron.daily8. 每星期執行/etc/cron.weekly內的腳本
22 4 * * 0 root run-parts /etc/cron.weekly9. 每月去執行/etc/cron.monthly內的腳本
42 4 1 * * root run-parts /etc/cron.monthly注意: "run-parts" 這個參數了,如果去掉這個參數的話,後面就可以寫要運行的某個腳本名,而不是文件夾名。
10. 每天的下午4點、5點、6點的5 min、15 min、25 min、35 min、45 min、55 min時執行命令。
5,15,25,35,45,55 16,17,18 * * * command11. 每周一,三,五的下午3:00系統進入維護狀態,重新啟動系統。
00 15 * * 1,3,5 shutdown -r +512. 每小時的10分,40分執行用戶目錄下的innd/bbslin這個指令:
10,40 * * * * innd/bbslink13. 每小時的1分執行用戶目錄下的bin/account這個指令:
以下是我的測試每分鍾的截圖效果,其對應代碼如下:
* * * * * /root/mysql_backup_script.sh效果截圖:
其中的log.txt記錄備份的操作詳細日誌:
本文參考:
1.MySQLmp常用命令www.cnblogs.com/smail-bao/p/6402265.html2.利用Shell腳本實現對mysql資料庫的備份:www.cnblogs.com/mracale/p/7251292.html3.Linux下的Crontab定時執行任務命令詳解:www.cnblogs.com/longjshz/p/5779215.html

熱點內容
獵犬ftp 發布:2025-07-20 06:19:17 瀏覽:757
靜態存儲定義 發布:2025-07-20 05:59:58 瀏覽:980
c盤java 發布:2025-07-20 05:55:05 瀏覽:515
修改linux時間的命令 發布:2025-07-20 05:40:58 瀏覽:540
python編程第四版中文pdf 發布:2025-07-20 05:39:37 瀏覽:257
普爾家庭資產怎麼配置 發布:2025-07-20 05:39:30 瀏覽:908
c語言退出程序函數 發布:2025-07-20 05:24:34 瀏覽:201
電腦怎麼訪問區域網伺服器 發布:2025-07-20 05:13:21 瀏覽:486
抖音mas演算法 發布:2025-07-20 04:54:54 瀏覽:523
媽媽會把手機圖案密碼設置成什麼 發布:2025-07-20 04:50:18 瀏覽:597