㈠ linux 怎麼通過Shell腳本定時備份MySQL資料庫
PATH=$PATH:$HOME/bin #備份目錄 BackupPath="/home/mysql/backup" #備份文件名 BackupFile="dbbackup"$(date +%y%m%d_%H)".sql" #資料庫的用戶名及密碼 user="root" passwd="Welcome@123" #檢查備份目錄是否存在 if !(test -d $BackupPath) then mkdir $BackupPath fi #使用mysql提供的mysqlmp備份腳本 /usr/local/mysql/bin/mysqlmp -u$user -p$passwd --allow-keywords --default-character-set=utf8 --set-charset -R -A --master-data=2 >"$BackupPath"/"$BackupFile" #刪除三個月前的備份文件 find "$BackupPath" -name "dbbackup*[log,sql]" -type f -mtime +3 -exec rm -rf {} \;
㈡ 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
㈢ shell腳本怎麼實現日誌備份到本地Linux系統
把日誌打包,壓縮,拉取到本地
㈣ linux自動備份shell
#!/bin/bash
#Function:壓縮備份文件
src_dir="/data/"
bak_dir="/data.bak/"
while:
do
#現獲取所有的目錄
cd$src_dir&&dirs=`ls-l|egrep'^d'|awk'{print$NF}'`
fordirin$dirs:
do
tarzcf${dir}.tgz$dir#壓縮目錄
mv${dir}.tgz$bak_dir#移動壓縮包到備份目錄
done
sleep5#每5s鍾檢查一次
done
#!/bin/bash
#Function:解壓備份文件
src_dir="/data/"
bak_dir="/data.bak/"
while:
do
#現獲取所有的目錄
cd$bak_dir&&tgzs=`ls*.tgz`
fortgzin$tgzs:
do
tarxf$tgz-Csrc_dir#將壓縮包解壓到src_dir目錄下
rm-f$tgz#刪除壓縮包
done
sleep5#每5s鍾檢查一次
done
如上兩個腳本差不多,只不過壓縮和解壓的操作對調了一下,我臨時寫的,沒有測試過,僅供參考,希望對你有幫助
㈤ linux系統上怎樣備份oracle資料庫
步驟以下:1、編寫備份資料庫的shell
1、創建保存shell文件的文件夾,2、文件內容為:#!/bin/sh
PATH=$PATH:$HOME/bin
export
PATH
ORACLE_BASE=/u01/app/oracle
export
ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/proct/10.2.0/db_1
export
ORACLE_HOME
ORACLE_SID=HRDB
export
ORACLE_SID
PATH=/usr/sbin:$PATH
PATH=$ORACLE_HOME/bin:$PATH
export
PATH
exp
fact/fact
file=/backup/fact`date
+%y%m%d`.dmp
log=/backup/factlog`date
+%y%m%d`.log
shell文件編寫終了1、運行以上的shell文件看是不是能生成備份的.dmp文件,如果能則表示shell文件編寫成功
2、然後在此shell文件的所在終端輸入命令,將此文件授權讓root用戶可以履行:
3、命令為:chmod
+x
backup.sh
4、然後到root終端編寫定時備份的語句5、語句為:crontab
–e
6、輸入i
7、輸入10
17
,,,/home/backupscript/backup.sh
8、按下esc建,輸入:wq
退出並保存便可。
㈥ linux系統中,寫一個shell對指定目錄下的文件大於特定值時自動進行備份.加急!
用perl實現較容易
配置文件: /xxx/backup.conf
A 200
B 100
C 50
腳本: /xxx/backup.pl
#!/usr/bin/perl
use strict;
use File::Basename;
# 配置文件名
my $config_file = "/xxx/backup.conf";
# 源目錄
my $src_dir = "/tmp";
#備份目錄
my $backup_dir = "/xxx/backup";
#當前日期
my $today = `date +%Y%m%d`;
$today =~ s/\n//;
# 讀取配置文件
my %conf;
open CONFIG, "<", $config_file;
while(<CONFIG>) {
my($fname, $fsize) = split;
$conf{$fname} = $fsize * 1024 * 1024;
}
close(CONFIG);
# 掃描源目錄,附合條件則進行備份
my @files = <$src_dir/*>;
foreach my $file (@files) {
my $file_basename = basename($file);
if ( -f $file && $conf{$file_basename}) {
if( -s $file > $conf{$file_basename} ) {
system "cp ${file} ${backup_dir}/${file_basename}.${today}";
if($?) {
#遇到錯誤就退出
die " ${file} to ${backup_dir}/${file_basename}.${today} failed!\n";
}
unlink ${file};
}
}
}
㈦ linux文件備份shell腳本
每次備份滿25個後再刪除:你每次備份是不同的文件名嗎?
如果計算個數:
num=${ls 文件名 |wc -l } //就可以計算
if [$num -gt 25] //加條件
then
find $back -name *_$date_before -exec rm -rf {} \;
eles
...
fi
㈧ 如何利用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
㈨ linux 的shell script備份文件,怎沒寫。
BACKUP="/tmp/$bakup.tgz" #這里不需要$
題目不是說要備份到/var/tmp/backup裡面嗎?
我寫個吧:
#!/bin/sh
tar czvf /var/tmp/backup.tar.gz /tmp/*
說明:
tmp目錄下面所有文件 /tmp/* (通配符*)
打包備份文件 /var/tmp/backup.tar.gz
選項解釋:
-c 創建新的檔案文件
-z 用gzip來壓縮/解壓縮文件,加上該選項後可以將檔案文件進行壓縮
-v 詳細報告tar處理的文件信息。如需要靜默執行,可以不加這個選項。
-f 使用檔案文件或設備,這個選項通常是必選的。
㈩ linux shell 循環執行 備份文件
for db in (shop shop_dev caiwu21 zkqe bugfree zentao); do
$DB=$db
/usr/local/mysql/bin/mysqlmp -u$USER -p$PW --lock-all-tables $DB > /bak/$DB1$DATE.sql
done