當前位置:首頁 » 文件管理 » linuxftp備份

linuxftp備份

發布時間: 2022-06-30 03:53:43

A. linux如何對整站進行備份啊,ftp好慢啊

整站備份需要先備份mysql資料庫ftp備份的是網頁文件或者附件

B. 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打包,並把重要的內容記錄到日誌文件里
ProjectLst=/backup/project.lst
##################################################
DATE=`date +"%Y-%m-%d"`
echo "backup start at $(date +"%Y-%m-%d %H:%M:%S")" >$LogFile
echo "--------------------------------------------------" >>$LogFile
cd $BakDir
PROJECTLIST=`cat $ProjectLst`
for Project in $PROJECTLIST
do
ProjectData=$SourceDir/$Project
DestDir=$BakDir/$Project
PackFile=$DATE.$Project.tgz
if [ -f $BakDir/$PackFile ]
then
echo "backup file have exist !" >>$LogFile
else
cp -RHpf $ProjectData $DestDir >/dev/null
tar -zcvf $PackFile $Project >/dev/null
echo "backup $Project done into $PackFile" >>$LogFile
rm -rf $Project
fi
done
echo "--------------------------------------------------" >>$LogFile
echo "backup end at $(date +"%Y-%m-%d %H:%M:%S")" >>$LogFile
echo " " >> $LogFile
##################################################
#下面的內容就是把剛才備份的內容傳到伺服器上,前提是你有一個可以訪問到底FTP伺服器
#put backup to ftp server
HOST=192.168.110.111
FTP_USERNAME=ftpuser
FTP_PASSWORD=123456
cd $BakDir
echo "start open ftp serverat $(date +"%Y-%m-%d %H:%M:%S")" >> $LogFile
echo "--------------------------------------------------" >>$LogFile
/usr/bin/ftp -in < open $HOST
user $FTP_USERNAME $FTP_PASSWORD
put $DATE.$Project.tgz
bye
EOF
echo "put ftp end at $(date +"%Y-%m-%d %H:%M:%S")" >>$LogFile
#最後上傳完畢後再查看本地備份大於20天的自動刪除,這樣就可以實現本地異地雙備份
find $Bakdir -type f -mtime +$RetainDay -name "*.$Project.tgz" -exec rm {} \; >/dev/null
exit 0
#最後我們還可用crontab做個周期性計劃,比如每周一次全備份
#59 23 * * 6 /home/backup.sh

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伺服器,怎麼備份,然後怎麼恢復到另一台機子上

伺服器安裝RAR,對d盤bakup文件夾下所有文件及目錄進行壓縮,命名為bakup.rar,放到d盤ftp目錄下
@echo offd:if not exist ftp md ftp"C:\Program Files\WinRAR\WinRAR.exe" a -r d:\ftp\bakup.rar d:\backup\*.*@echo ok!exit
客戶端,自動登錄ftp下載所有文件到F盤bak目錄(ftp用戶名密碼為test,也可以把mget替換為get下載指定文件),
@echo
offf:if not exist bak md f:\bakcd /d f:\bak>f:\bak\ftptmp echo open
192.168.1.254>>f:\bak\ftptmp echo test>>f:\bak\ftptmp echo
test>>f:\bak\ftptmp echo bin>>f:\bak\ftptmp echo
prompt>>f:\bak\ftptmp echo mget *.*>>f:\bak\ftptmp echo
byestart /wait ftp -s:f:\bak\ftptmpdel f:\bak\ftptmpexit
伺服器和ftp客戶端分別設置計劃任務,定時執行。bat批處理可以根據你的具體設置進行修改。

E. 如何自動備份資料庫後將備份自動上傳到FTP伺服器

這篇文章很有分享價值,因為我們在實際的生產環境中需要將資料庫進行自動備份,然後上傳到指定的位置,當然也可以像以下文章中所講的一樣,上傳到你指定的FTP伺服器中,從而實現Mysql資料庫自動備份並上傳到遠程FTP伺服器的部署,在Linux技術交流群中,也有朋友會遇到這方面的問題,可以將此文分享給群友共益。
注意:任何的操作都會具有風險性,請在本機實際測試通過之後再部署到伺服器環境,這樣即熟練的掌握了操作的技巧,也能在測試過程中發現問題,尋找解決方法。

說明:我這里要把MySql資料庫存放目錄/var/lib/mysql下面的data資料庫備份到/home/mysql_data裡面
並且保存為mysqldata_bak_2012_12_19.tar.gz的壓縮文件格式(2012_12_19是指備份執行時當天的日期)
然後只保留最近7天的備份
再把備份文件通過ftp伺服器上傳到指定空間,只保留最近7天的數據
實現步驟:
1、創建保存備份文件的路徑:/home/mysql_data
cd /home
mkdir mysql_data
2、創建備份腳本文件:/home/mysql_data/mysql_databak.sh
cd /home
cd mysql_data
touch mysql_databak.sh
vim mysql_databak.sh
輸入以下內容:
#######################################################################################################
#!/bin/sh
DUMP=/usr/bin/mysqlmp #mysqlmp備份文件執行路徑
OUT_DIR=/home/mysql_data #備份存放路徑
LINUX_USER=root #系統用戶名
DB_NAME=data #要備份的資料庫名字
DB_USER=root #資料庫賬號 注意:非root用戶要用備份參數 --skip-lock-tables,否則可能會報錯
DB_PASS=123456 #資料庫密碼
DAYS=7 #DAYS=7代表刪除7天前的備份,即只保留最近7天的備份
cd $OUT_DIR #進入備份存放目錄
DATE=`date +%Y_%m_%d` #獲取當前系統時間
OUT_SQL="$DATE.sql" #備份資料庫的文件名
TAR_SQL="mysqldata_bak_$DATE.tar.gz" #最終保存的資料庫備份文件名
$DUMP -u$DB_USER -p$DB_PASS $DB_NAME --default-character-set=utf8 --opt -Q -R --skip-lock-tables> $OUT_SQL #備份
tar -czf $TAR_SQL ./$OUT_SQL #壓縮為.tar.gz格式
rm $OUT_SQL #刪除.sql格式的備份文件
chown $LINUX_USER:$LINUX_USER $OUT_DIR/$TAR_SQL #更改備份資料庫文件的所有者
find $OUT_DIR -name "mysqldata_bak_*" -type f -mtime +$DAYS -exec rm {} \; #刪除7天前的備份文件
deldate=` date -d -7day +%Y_%m_%d ` #獲取7天前的時間
ftp -n<<!
open 192.168.1.1 21 #打開ftp伺服器。21為ftp埠
user admin 123456 #用戶名、密碼
binary #設置二進制傳輸
cd mysqlbak #進入ftp目錄(這個目錄必須為ftp空間真實存在的目錄)
lcd /home/mysql_data #列出本地目錄
prompt
put mysqldata_bak_$DATE.tar.gz mysqldata_bak_$DATE.tar.gz #上傳目錄中的文件
delete mysqldata_bak_$deldate.tar.gz mysqldata_bak_$deldate.tar.gz #刪除ftp空間7天前的備份
close
bye !
#######################################################################################################
3、修改文件屬性,使其可執行
chmod +x /home/mysql_data/mysql_databak.sh
4、修改/etc/crontab
vi /etc/crontab
在下面添加
30 1 * * * root /home/mysql_data/mysql_databak.sh
表示每天凌晨1:30分執行備份
5、重新啟動crond使設置生效
/etc/rc.d/init.d/crond restart
chkconfig crond on #設為開機啟動
service crond start #啟動
每天你在/home/mysql_data目錄下面可以看到類似mysqldata_bak_2012_12_19.tar.gz這樣的壓縮文件
如果需要恢復文件的時候,只需要把這個文件解壓即可
解壓縮tar -zxvf mysqldata_bak_2012_12_19.tar.gz
至此,我們完成了Linux中Mysql資料庫自動備份並上傳到遠程FTP伺服器的部署。

F. 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打包,並把重要的內容記錄到日誌文件里

G. linux系統中 假設你是一個系統管理員,需要在每周三下午5點30分備份/var/ftp/pub目錄中的所有文件

crontab -e
30 17 * * 3 tar czvf backup.tar.gz /var/ftp/pub

H. 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

I. Linux制定定時備份文件到FTP伺服器的問題

crontab -u 用戶名(root)
* * * * * 每個星號表示 每分 每小時 每天 每月 每星期 如果是每天15:30廣播一次,就是
30 15 * * * wall 「hello world」

至於你自己的命令,自己看著辦吧。

J. 倆台linux主機間互相備份資料庫,A如何通過ftp在B上刪除10天以上的文件

你用ftp user@server登陸過去,然後看看能不能操作
其實你用ssh是最好操作的,在B上開啟sshd服務,然後從A上登陸過去,這樣你就可以像在本地操作一樣啊

熱點內容
sql多表連接查詢 發布:2025-01-15 22:33:12 瀏覽:219
android網路休眠 發布:2025-01-15 22:32:12 瀏覽:348
怎麼不下魯大師查看電腦配置 發布:2025-01-15 22:30:23 瀏覽:309
php頁面亂碼 發布:2025-01-15 22:28:49 瀏覽:845
夢幻寶貝腳本 發布:2025-01-15 22:27:36 瀏覽:256
安卓怎麼調成2g網 發布:2025-01-15 22:21:40 瀏覽:284
android小車 發布:2025-01-15 22:21:15 瀏覽:923
微信怎麼沒有設置密碼 發布:2025-01-15 22:19:00 瀏覽:686
php判斷閏年 發布:2025-01-15 22:17:16 瀏覽:793
加密文件編號 發布:2025-01-15 21:56:56 瀏覽:437