shell備份資料庫數據
在linux上安裝Mysql並建立測試庫,編寫shell腳本對此庫使用mysqlmp進行定時備份和歷史備份文件清理(保留3天),注意腳本的通用性和擴展性
1 mysq資料庫的安裝
[sql] view plain
#安裝服務端
yum install mysql-server
yum install mysql-devel
#安裝客戶端
yum install mysql
#啟動mysql
service mysqld start 或 /etc/init.d/mysqld start
#停止mysql
service mysqld stop
#設置密碼
mysqladmin -u root password ***
#登錄mysql
mysql -u root -p
2 創建測試資料庫和表
[sql] view plain
<pre class="sql" name="code">#創建資料庫
create database users;
#創建表
create tablse student(
id integer auto_increment not null primary key,
name varchar(30) );
[sql] view plain
#插入一條數據
insert into student(name) values("congju");
[sql] view plain
#查看數據
select * from student;
3 mysqlmp用法
mysql自帶的工具,允許你以SQL命令集的形式將整個資料庫導出到一個單獨的文件中。
[sql] view plain
#將users資料庫備份到/root/user.mp文件中
mysqlmp -u root -p users > /root/users.mp
4 利用shell腳本實現對users資料庫的備份
[sql] view plain
#!/bin/bash
#保存備份個數
number=3
#備份保存路徑
backup_dir=/root/mysqlbackup
#日期
dd=`date +%Y%m%d`
#備份工具
tool=mysqlmp
#用戶名
❷ 如何使用shell腳本每天自動備份mysql資料庫
mysql備份用自帶的備份工具mysqlmp
每天自動執行用cron工具,把mysql的備份命令放在.sh文件裡面
.sh文件放在/etc/cron.daily目錄,就會每天自動執行了。
❸ shell怎麼備份任意個同伺服器上資料庫
#!/bin/bash
if [ $# -lt 4 ];then
echo "comm is wrong!"
exit 1
fi
define backDb()
{
mysqlmp -u $1 -p$2 $3 > $4
}
let end=$#-1
path=`echo $#`
for ((i=3;i<=$end;i++));do
backDb($1 $2 $i $path/$i)
done
❹ shell怎麼對mysql資料庫進行自動備份
1、計劃任務,每天1點備份
0 1 * * * /data/backup/backup-mysql.sh;
2、backup-mysql.sh內容,將每天備份的內容打包
#!/bin/sh
ymd=`date +%Y%m%d`
cd /data/backup
mysqlmp -uuser001 -p12345678 db001 > db001.sql
tar zcf db001-${ymd}.sql.gz db001.sql
3、restore.sh恢復數據
mysql -uuser001 -p12345678 -Ddb001 < db001.sql
❺ 如何利用shell腳本備份網站數據到遠程linux主機上
第一步: 設置免密碼登錄 請參考 如何ssh免密碼登錄linux伺服器
第二步:輸入以下代碼後(注意最後一行的199.101.117.xx改成你自己的那個伺服器地址) 保存退出
[root@niko ~]# vi backup.sh
#!/bin/bash backdir=/backup month=`date +%m` day=`date +%d` year=`date +%Y` dirname=$year-$month-$day mkdir -p $backdir/$dirname mkdir -p $backdir/$dirname/conf mkdir -p $backdir/$dirname/web mkdir -p $backdir/$dirname/db gzupload=upload.tgz cp /etc/httpd/conf/httpd.conf $backdir/$dirname/conf/httpd.conf cd /var/www/html/ tar -zcvf $backdir/$dirname/web/$gzupload ./ scp -r /backup/$dirname [email protected]:/backup
第三步 crontab -e 設置每日定時
[root@niko ~]# crontab -e
第四步 設置每日的10:28分運行backup.sh腳本,注意腳本名最好寫絕對路徑
28 10 * * * /root/backup.sh
第五步 設置腳本運行許可權
[root@niko ~]#chmod +x /root/backup.sh
第六步 在另一台也就是要存放備份的伺服器上新建backup這個文件夾
[root@testvpn backup]#mkdir /backup
❻ 編寫一個shell腳本每天16:30備份mysql數據並壓縮打包(打包文件按照當天日期命名)放到/root/data下
#!/bin/bash
date=$(date-d'+0days''+%Y-%m-%d')#聲明一個變數,並賦值當天日期
cd/root/data#進入目錄
mkdir$date#創建目錄
mysqlmp-uusername-ppassworddb_name>$date"db_name.sql"#資料庫備份,修改用戶名密碼,還有要備份資料庫
tar-zcf$date".tar.gz"$date#壓縮打包
rm-rf$date#刪除源數據
保存為bak.sh,每天16:30備份定時任務,沒有crontab命令:yum install vixie-cron
chmod +x /.../bak.sh
crontab -e
30 16 * * * /.../bak.sh
❼ XShell5裡面登陸了資料庫,如何將資料庫裡面的表或者整個資料庫備份導出來(和導入進去)
開始—運行—輸入「CMD」回車,然後直接寫入以下命令
導出的命令:
exp 用戶名/密碼@資料庫名 file=D:\database.dmp log=data.log
file後是寫得你導出的文件存放的路徑,database.dmp是你導出的文件,log是你導出日誌,便於查詢錯誤,不要也可以。例如 exp user/password@orcl file=d:\aaa.dmp
導入的命令:
imp 用戶名/密碼@資料庫名 file=D:\database.dmp full=y
full=y一定不要丟。
❽ shell腳本,定時備份資料庫
如果是都逗號分隔的稍微處理下
list="a,b,c,d..."
for t in `echo ${list//,/ }`;do echo $t;done;
❾ linux系統上怎麼備份oracle資料庫
exp適合oracle10g,從oracle 11g開始使用expdp工具。
❿ Linux 怎麼shell腳本定時備份mysql資料庫
每天定時備份mysql資料庫任務,刪除指定天數前的數據,保留指定天的數據;
需求:
1,每天4點備份mysql數據;
2,為節省空間,刪除超過3個月的所有備份數據;
3,刪除超過7天的備份數據,保留3個月里的
10號
20號
30號的備份數據;
#創建shell文件
vim
backup_mysql.sh
mysqlmp
-uroot
-p123456
--all-databases
>
/data/dbdata/mysqlbak/`date
+%Y%m%d`.sql
find
/data/dbdata/mysqlbak/
-mtime
+7
-name
'*[1-9].sql'
-exec
rm
-rf
{}
\;
find
/data/dbdata/mysqlbak/
-mtime
+92
-name
'*.sql'
-exec
rm
-rf
{}
\;
#創建定時任務
crontab
–e
0
4
*
*
*
/data/dbdata/backup_mysql.sh