A. linux中怎麼用ftp做自動備份
#!/bin/bash
#設置日誌文件,前提建好了/backup/log目錄
LogFile=/backup/log/`date +"%Y-%m"`.log
#備份源目錄
SourceDir=/cvs
#備份目標
BakDir=/backup
#保存20天過期自動刪除
RetainDay=20
#備份的內容可以寫進project.lst,如cvs目錄下有a,b,c三個目錄,project.lst填寫多少就備份多少,下面是備份的
#具體腳本,其核心是tar打包,並把重要的內容記錄到日誌文件里
B. linux自動備份網站及自動上傳FTP腳本的方法
對於我們個人站長來說,數據的重要不用再談,而很多站長經常忘記備份數據,也有無良的JS跑路,硬碟損壞,數據丟了,其中DS就丟失過好幾次數據,如果沒有備份,肯定悲劇,本文介紹一種自動備份數據的方法!
本腳本特色:
1.純zip壓縮,1-9可自行調整壓縮率
2.整台VPS備份,還原方便,非常適合站群
3.加入壓縮密碼,可以自己設置
4.加入綁米信息偽靜態壓縮,防止偽靜態弄丟
5.請確保在home目錄下有backup目錄,如果沒有請執行
mkdir
/home/backup
6.還原資料庫請參考:導入資料庫方法
最後更新時間:2012年8月25日
centos安裝zip
yum
install
zip
debian安裝zip
apt-get
install
zip
下載編輯
wget
-c
http://www.***.com/soft/beifen.sh
vi
beifen.sh
只編輯註解為需要修改的地方
【腳本開始】
#!/bin/bash
#下面的參數是你要修改的
MYSQL_USER=root
#mysql用戶名
MYSQL_PASS=mysql密碼
#mysql密碼
FTP_USER=FTP用戶名
#ftp用戶名
FTP_PASS=FTP密碼
#ftp密碼
FTP_IP=FTP地址
#ftp地址
FTP_backup=FTP目錄
#ftp上存放備份文件的目錄,這個要自己得ftp上面建的
WEB_DATA=/home/wwwroot/
#要備份的網站數據
WEB_BANGMI=/usr/local/nginx/conf/
#要備份的綁米信息
WEB_MULU=/home/backup
#備份文件存放目錄
WEB_MIMA=zhujima
#備份時候的密碼
WEB_YASUOLV=1
#壓縮率
1-9
如果VPS沒有zip,請安裝zip
#上面是你要修改的地方
#刪除淘寶客緩存,屬於自定義設置。可自行操作
#rm
-rf
/home/wwwroot/1.com/Apicache/*
#定義資料庫的名字和舊資料庫的名字
DataBakName=Data_$(date
+"%Y%m%d").zip
#定義資料庫名字
WebBakName=Web_$(date
+%Y%m%d).zip
#定義備份網站名字
BANGMI=BANGMI_$(date
+%Y%m%d).zip
#定義綁米備份名字
OldData=Data_$(date
-d
-5day
+"%Y%m%d").zip
#定義5天前資料庫名字
OldWeb=Web_$(date
-d
-5day
+"%Y%m%d").zip
#定義5天前網站名字
BANGMIshan=BANGMI_$(date
-d
-5day
+"%Y%m%d").zip
#定義5天前綁米名字
#刪除本地3天前的數據
rm
-rf
$WEB_MULU/Data_$(date
-d
-3day
+"%Y%m%d").zip
$WEB_MULU/Web_$(date
-d
-3day
+"%Y%m%d").zip
$WEB_MULU/BANGMI_$(date
-d
-3day
+"%Y%m%d").zip
#導出全部資料庫
cd
$WEB_MULU
/usr/local/mysql/bin/mysqlmp
-u$MYSQL_USER
-p$MYSQL_PASS
--all-databases
>
$(date
+"%Y%m%d").sql
#壓縮資料庫文件為一個文件
zip
-r
-$WEB_YASUOLV
-P
$WEB_MIMA
$DataBakName
$WEB_MULU/*.sql
rm
-rf
$WEB_MULU/*.sql
#壓縮網站數據
cd
$WEB_DATA
zip
-r
-$WEB_YASUOLV
-P
$WEB_MIMA
$WebBakName
./*
mv
$WebBakName
$WEB_MULU/$WebBakName
cd
$WEB_MULU
#壓縮綁米信息
cd
$WEB_BANGMI
#進入綁米目錄
zip
-r
-$WEB_YASUOLV
-P
$WEB_MIMA
$BANGMI
./*
mv
$BANGMI
$WEB_MULU/$BANGMI
#上傳到FTP空間,刪除FTP空間5天前的數據
cd
$WEB_MULU
#進入備份目錄
ftp
-v
-n
$FTP_IP
<<
END
user
$FTP_USER
$FTP_PASS
type
binary
cd
$FTP_backup
delete
$BANGMIshan
delete
$OldData
delete
$OldWeb
put
$DataBakName
put
$WebBakName
put
$BANGMI
bye
END
加入許可權,寫入定時執行
chmod
777
/root/beifen.sh
crontab
-e
30
21
*
*
*
/root/beifen.sh
註:每天21:30開始備份並且上傳FTP
本文地址:http://www.zhujima.com/139.html
C. linux 異地備份(ftp)
創建腳本/root/script/backup.sh
# 該腳本應用於10多台普通的Linux應用伺服器,多年來從未出過差錯。
# 資料庫備份較為特殊,這里不包含資料庫備份。
# 因為腳本中含有FTP密碼,所以FTP僅給予寫許可權較為安全,FTP中的老備份的定期刪除任務由FTP伺服器完成。
# 備份加入到自動任務中,每周六23:00執行,並寫入日誌,如下:
# 追加下面語句到/etc/crontab中
# 0 23 * * 6 root /root/script/backup.sh >> /root/script/backup.log 2>&1
#有注釋版:
#!/bin/bash
#=====================================================
#author zhaoyn
#date 2010/12/31
#=====================================================
#參數設定
basedir=/opt/backup #備份存放的目錄
days=15 #備份在本地保留天數
bakfiles="/root/script /etc" #需要備份的目錄或文件,請不要使用快捷方式或通配符
ftpip=XXX.XXX.XXX.XXX #異地備份的FTP地址
ftpuser='username' #異地備份的FTP用戶名
ftppw='password' #異地備份的FTP密碼
echo =====================================================
date
cd $basedir
#刪除備份目錄中15天以前備份文件,不包含子目錄
find -maxdepth 1 -name "*.tgz" -mtime +"$days" -exec rm -f {} \;
for bakfile in $bakfiles
do
file=`basename $bakfile`
#壓縮打包需要備份的目錄,包括許可權,文件命名包含當前時間
tar -czpf "$file"_$(date +%Y%m%d-%H%M).tgz $bakfile
#大文件打包前後,緩解磁碟壓力,降低I/O錯誤概率
sleep 10s ;sync;sync
done
#通過FTP上傳當天備份的文件到異地
ftp -v -n -i $ftpip <<END
user $ftpuser $ftppw
bin
mput *$(date +%Y%m%d)*.tgz
bye
END
#無注釋版:
#!/bin/bash
#=====================================================
#author zhaoyn
#date 2010/12/31
#=====================================================
basedir=/opt/backup
days=15
bakfiles="/root/script /etc"
ftpip=XXX.XXX.XXX.XXX
ftpuser='username'
ftppw='password'
echo =====================================================
date
cd $basedir
find -maxdepth 1 -name "*.tgz" -mtime +"$days" -exec rm -f {} \;
for bakfile in $bakfiles
do
file=`basename $bakfile`
tar -czpf "$file"_$(date +%Y%m%d-%H%M).tgz $bakfile
sleep 10s ;sync;sync
done
ftp -v -n -i $ftpip <<END
user $ftpuser $ftppw
bin
mput *$(date +%Y%m%d)*.tgz
bye
END
Mysql的備份,如果凌晨可以停止幾分鍾,那麼強烈建議對Mysql執行物理備份,腳本如下
#!/bin/bash
#History
#=====================================================
#When Who What
#2010/3/24 Zhaoyn Create
#
#=====================================================
basedir=/opt/backup
updir=$basedir/updir
timenow=$(date +%Y%m%d-%H%M)
# 刪除mysql十四天前的數據,注意,這里僅刪除了mysql的tgz文件。
rm -f `find $basedir -name "mysql*.tgz" -mtime +14`
# 由於資料庫在有連接的情況下,直接對數據文件打包是可能出問題的,所以這里我們在打包前要停用資料庫,這樣直接對數據文件打包,恢復時只需解壓數據文件到新環境相應的目錄即可,默認是/var/lib/mysql
# 如果白天也要進行資料庫備份,請使用mysqlmp命令,進行在線備份。恢復也挺方便的。
/etc/rc.d/init.d/mysqld stop
sleep 5s ;sync;sync
tar -czpf $basedir/mysql.$timenow.tgz /var/lib/mysql
/etc/rc.d/init.d/mysqld start
#=====================================================
附件中的腳本文件是有DOS換行符(CR/LF)的,復制文件中的內容到SSH客戶端沒有問題,如果直接拷貝文件到Linux系統中,可先運行下面的命令:
mv *.txt *sh
dos2unix *.sh
D. linux下怎麼上傳備份文件到FTP伺服器
ftp xxx.xx.xx.x
username/password
put xxx
E. 倆台linux主機間互相備份資料庫,A如何通過ftp在B上刪除10天以上的文件
你用ftp user@server登陸過去,然後看看能不能操作
其實你用ssh是最好操作的,在B上開啟sshd服務,然後從A上登陸過去,這樣你就可以像在本地操作一樣啊
F. linux如何對整站進行備份啊,FTP好慢啊
整站備份需要先備份mysql資料庫ftp備份的是網頁文件或者附件
G. Linux制定定時備份文件到FTP伺服器的問題
crontab -u 用戶名(root)
* * * * * 每個星號表示 每分 每小時 每天 每月 每星期 如果是每天15:30廣播一次,就是
30 15 * * * wall 「hello world」
至於你自己的命令,自己看著辦吧。
H. linux伺服器備份的dmp文件可以穿到windows操作系統的ftp上嗎
可以的,但是要在ftp裡面bi一下,也就是告訴ftp用二進制傳,否則文件就錯掉了,