當前位置:首頁 » 文件管理 » ftp數據自動備份linux

ftp數據自動備份linux

發布時間: 2025-09-10 17:01:59

linuxftp命令的使用方法詳解

ftp伺服器在網上較為常見,Linux ftp命令的功能是用命令的方式來控制在本地機和遠程機之間傳送文件,這里詳細介紹Linux ftp命令的一些經常使用的命令,相信掌握了這些使用Linux 進行ftp操作將會非常容易。

Linux ftp命令的一般格式如下:

$ ftp 主機名/IP

其中「主機名/IP」是所要連接的遠程機的主機名或IP地址。在命令行中,主機名屬於選項,如果指定主機名,ftp將試圖與遠程機的ftp服務程序進行連接;如果沒有指定主機名,ftp將給出提示符,等待用戶輸入命令:
$ ftp
ftp >
此時在ftp>提示符後面輸入open命令加主機名或IP地址,將試圖連接指定的主機。
不管使用哪一種方法,如果連接成功,需要在遠程機上登錄。用戶如果在遠程機上有帳號,就可以通過ftp使用這一帳號並需要提供口令。在遠程機上的用戶帳號的讀寫許可權決定該用戶在遠程機上能下載什麼文件和將上載文件放到哪個目錄中。
如果沒有遠程機的專用登錄帳號,許多ftp站點設有可以使用的特殊帳號。這個帳號的登錄名為anonymous(也稱為匿名ftp),當使用這一帳號時,要求輸入email地址作為口令。
如果遠程系統提供匿名ftp服務,用戶使用這項服務可以登錄到特殊的,供公開使用的目錄。一般專門提供兩個目錄:pub目錄和incoming目錄。pub目錄包含該站點供公眾使用的所有文件,incoming目錄存放上載到該站點的文件。
一旦用戶使用ftp在遠程站點上登錄成功,將得到「ftp>」提示符。現在可以自由使用ftp提供的命令,可以用 help命令取得可供使用的命令清單,也可以在 help命令後面指定具體的命令名稱,獲得這條命令的說明。
最常用的命令有:

ls 列出遠程機的當前目錄
cd 在遠程機上改變工作目錄
lcd 在本地機上改變工作目錄
ascii 設置文件傳輸方式為ASCII模式
binary 設置文件傳輸方式為二進制模式
close 終止當前的ftp會話
hash 每次傳輸完數據緩沖區中的數據後就顯示一個#號
get(mget) 從遠程機傳送指定文件到本地機
put(mput) 從本地機傳送指定文件到遠程機
open 連接遠程ftp站點
斷開與遠程機的連接並退出ftp
? 顯示本地幫助信息
! 轉到Shell中

下面簡單將ftp常用命令作一簡介。

◆啟動ftp會話
open命令用於打開一個與遠程主機的會話。該命令的一般格式是:
◆open 主機名/IP
如果在ftp 會話期間要與一個以上的站點連接,通常只用不帶參數的ftp命令。如果在會話期間只想與一台計算機連接,那麼在命令行上指定遠程主機名或IP地址作為ftp命令的參數。
◆終止ftp會話
close、disconnect、和bye命令用於終止與遠程機的會話。close和disronnect命令關閉與遠程機的連接,但是使用戶留在本地計算機的ftp程序中。和bye命令都關閉用戶與遠程機的連接,然後退出用戶機上的ftp 程序。
◆改變目錄
「cd [目錄]」命令用於在ftp會話期間改變遠程機上的目錄,lcd命令改變本地目錄,使用戶能指定查找或放置本地文件的位置。
◆遠程目錄列表
ls命令列出遠程目錄的內容,就像使用一個交互shell中的ls命令一樣。ls命令的一般格式是:
ls [目錄] [本地文件]
如果指定了目錄作為參數,那麼ls就列出該目錄的內容。如果給出一個本地文件的名字,那麼這個目錄列表被放入本地機上您指定的這個文件中。
◆從遠程系統獲取文件
get和mget命令用於從遠程機上獲取文件。get命令的一般格式為:
get 文件名
您還可以給出本地文件名,這個文件名是這個要獲取的文件在您的本地機上創建時的文件名。如果您不給出一個本地文件名,那麼就使用遠程文件原來的名字。
mget命令一次獲取多個遠程文件。mget命令的一般格式為:
mget 文件名列表
使用用空格分隔的或帶通配符的文件名列表來指定要獲取的文件,對其中的每個文件都要求用戶確認是否傳送。
◆向遠程系統發送文件
put和mput命令用於向遠程機發送文件。Put命令的一般格式為:
put 文件名
mput命令一次發送多個本地文件,mput命令的一般格式為:
mput 文件名列表
使用用空格分隔的或帶通配符的文件名列表來指定要發送的文件。對其中的每個文件都要求用戶確認是否發送。
◆改變文件傳輸模式
默認情況下,ftp按ASCII模式傳輸文件,用戶也可以指定其他模式。ascii和brinary命令的功能是設置傳輸的模式。用ASCII模式傳輸文件對純文本是非常好的,但為避免對二進制文件的破壞,用戶可以以二進制模式傳輸文件。
◆檢查傳輸狀態
傳輸大型文件時,可能會發現讓ftp提供關於傳輸情況的反饋信息是非常有用的。hash命令使ftp在每次傳輸完數據緩沖區中的數據後,就在屏幕上列印一個#字元。本命令在發送和接收文件時都可以使用。
◆ftp中的本地命令
當您使用ftp時,字元「!」用於向本地機上的命令shell傳送一個命令。如果用戶處在ftp會話中,需要shell做某些事,就很有用。例如用戶要建立一個目錄來保存接收到的文件。如果輸入!mkdir new_dir,那麼Linux就在用戶當前的本地目錄中創建一個名為new_dir 的目錄。

這里Linux ftp命令就介紹到這里,應該足夠在Linux系統下使用ftp工具了。

❷ 如何讓windows將大量文件自動定時備份至linux伺服器

這樣吧!
1.你在windows上裝備FlashFXP這個軟體!然後定製一個傳送列隊,把列隊可以存出來,在軟體中把是否覆蓋這類東西設好,然後雙擊那個列隊文件,就開始上傳了!然後再windows計劃任務里把這個列隊文件設成計劃任務!
2.或者你可以在linux上開SMB服務,就是把linux的一個區域模擬成windows的共享,這樣你就可以簡單的用復制粘貼等操作把你文件到linux上去了(做個.bat的批處理文件拷貝也可以,這樣bat文件就可以放到計劃任務里了),把共享做個映射的硬碟;
2.1用Allway Sync備份工具 V9.2.11 漢化版這個軟體去同步兩邊的文件,
2.2當然你也可以用fast這個軟體,自動復制指定文件夾所有文件,對方如果同名文件存在,可以根據修改日期自動判斷是否覆蓋!淡然執行那個按鈕你得點,不過這個問題可以用按鍵精靈解決,讓按鍵精靈設定好時間,定時啟動替你干這個!
當然高級辦法也有,有人用VBS腳本來干,不過我不熟那個,所以沒用,但網上能找到!
3.在linux系統上設置crontab, 晚上定時去windows ftp上下載。借鑒樓下的做了點說明
3.1 在windows上安裝ftp服務端
3.2 在寫下載腳本auto_download.sh:
參考:
lftp 10.0.0.1 -u user,passwd -e 'cd /pwd;get XX;quit'
多文件下載請用mget
3.3 在linux上設定crontab
crontab -e
00 00 * * * sh /pwd/auto_download.sh
每天零點開始執行auto_download.sh 這個腳本
呵呵,這么多思路你慢慢想吧!總有好辦法的!祝你好運

❸ linux自動備份,打包/var/www/html到/bak 並只保留7天

首先我在/root/backup 目錄下建立一個文件夾,
#mkdir /root/backup/mysqlbackup
以後在每天五點鍾,就會有一個文件保存在這里慎頃.
接著新建文件
#vim /root/mysqlautobak
輸入:
filename=` date +%Y%m%d `
mysqlmp --all-databases -uroot -p(mysql密碼)> /root/backup/mysqlbackup/mysql$file.sql

保存退出!
讓它可以執行
#chomd +X /root/mysqlautobak
接著開始完crontab了
#vi /etc/寬弊陸crontab

添加一行

01 5 * * * root /root/mysqlautobak
保存退出.
重新啟動你的crond服務進程
# /etc/rc.d/init.d/crond restart

===============================================================================
hp unix 自動全備份腳本(shell)

說明:每天夜裡10點自動備份並且壓縮,保留2天備份,在備份完當天後刪除前天的備份。在一切執行之後,發郵件通知,郵件內容有刪除文件和備份文件名稱及備份開始時間,結束時間。
使用方法:nohup backup.sh &
filename:backup.sh
reportlist=""
while [ 1 ]
do
hou=`date +%H`
backdate=`date +%Y%m%d`
if [ $hou -eq 22 ]
then
begintime=`date +%Y-%m-%d:%H-%M`
cd /data_log2/for_test
log_txt=`ls -al -crt log.txt | awk '{print $9}' | wc -l`
if [ $log_txt -gt 0 ]
then
mv log.txt log.txt.bak
fi
exp owner=user file=/data_log2/for_test/tmp_now.dmp
compress /data_log2/for_test/tmp_now.dmp
mv tmp_now.dmp.Z report_$backdate.dmp.Z
echo "---------report database backuped----------- ">> log.txt
echo "filename="report_$backdate.dmp.Z >>log.txt
delfile=`ls -al -crt *.Z | awk '{print $9}' | head -1`
count=`ls -al -crt *.Z | awk '{print $9}' | wc -l`
if [ $count -gt 2 ]
then
rm `ls -al -crt *.Z | awk '{print $9}' | head -1`
echo "----------- old backup deleted ---------" >> log.txt
echo "the deleted backup filename="$delfile >> log.txt
fi
echo "-----------------beigin time----------------" >卜宴> log.txt
echo $begintime >> log.txt
echo "-----------------end time----------------" >> log.txt
echo `date +%Y-%m-%d:%H-%M` >> log.txt
rm log.txt.bak
mailx -s "10.203.116.23 daily database backup" -r ")" $reportlist < log.txt
fi
sleep 3600
done
======================================================================================
1 給我自己的伺服器寫的一段自動備份的shell
#!/bin/bash
#指定要備份的系統目錄
SYSTEM_DIR=/home
#指定要備份的目錄MAIL_DIR=mailbox #郵件目錄
WEBSITE_DIR=www/html #WEB目錄
DATABASE_DIR=databases #資料庫目錄
#指定備份文件的前綴
MAIL_PREFIX=mail
WEBSITE_PREFIX=web
DATABASE_PREFIX=database
#有朋友的一台WIN2K伺服器,我在上面開了ftp,把備份文件傳到他的伺服器上,相當於我實現了個雙機備份
#ftp伺服器的IP
FTP_SERV=211.144.155.111
#ftp用戶名
FTP_USER=username
#ftp密碼
FTP_PASS=12345678
#備份文件存放目錄
BACKUP_DIR=/home/backup
#格式化一下日期,備份文件時用日期來做文件名的
DATE=`date +%Y%m%d`
#開始備份郵件
if [ -f ${BACKUP_DIR}/${MAIL_PREFIX}${DATE}.tar.gz ]; then #如果當天的郵件已經備份,那沒跳過
echo `date +%Y-%m-%d`'s mail backup file is existing
else #如果沒有備份,那麼用tar命令來打包郵件目錄
tar -czvf ${BACKUP_DIR}/${MAIL_PREFIX}${DATE}.tar.gz ${SYSTEM_DIR}/${MAIL_DIR}
fi
#開始備份網站目錄,備份過程同上
if [ -f ${BACKUP_DIR}/${WEBSITE_PREFIX}${DATE}.tar.gz ]; then
echo `date +%Y-%m-%d`'s webebsite backup file is existing
else
tar -czvf ${BACKUP_DIR}/${WEBSITE_PREFIX}${DATE}.tar.gz ${SYSTEM_DIR}/${WEBSITE_DIR}
fi
#開始備份資料庫目錄,備份過程同上
if [ -f ${BACKUP_DIR}/${DATABASE_PREFIX}${DATE}.tar.gz ]; then
echo `date +%Y-%m-%d`'s database backup file is existing
else
tar -czvf ${BACKUP_DIR}/${DATABASE_PREFIX}${DATE}.tar.gz ${SYSTEM_DIR}/${DATABASE_DIR}
fi
#開始把備份文件傳輸到另一台伺服器上
ftp -i -n $FTP_SERV <<AUTO_FTP
user $FTP_USER $FTP_PASS
passive
binary
put ${BACKUP_DIR}/${MAIL_PREFIX}${DATE}.tar.gz ${MAIL_PREFIX}${DATE}.tar.gz
put ${BACKUP_DIR}/${WEBSITE_PREFIX}${DATE}.tar.gz ${WEBSITE_PREFIX}${DATE}.tar.gz
put ${BACKUP_DIR}/${DATABASE_PREFIX}${DATE}.tar.gz ${DATABASE_PREFIX}${DATE}.tar.gz
AUTO_FTP
別忘了,還有最後一步,就是在crontab里加上個任務,這樣你就不用每次備份都一步步地敲那些瑣碎的命令了。

我的網站,希望大家多多交流

===================================
linux下:
MySQL :: Linux 下自動備份資料庫的 shell 腳本
Linux 伺服器上的程序每天都在更新 MySQL 資料庫,於是就想起寫一個 shell 腳本,結合 crontab,定時備份資料庫。其實非常簡單,主要就是使用 MySQL 自帶的 mysqlmp 命令。
腳本內容如下:
#!/bin/sh
# File: /home/mysql/backup.sh
# Database info
DB_NAME="test"
DB_USER="username"
DB_PASS="password"
# Others vars
BIN_DIR="/usr/local/mysql/bin"
BCK_DIR="/home/mysql/backup"
DATE=`date +%F`
# TODO
$BIN_DIR/mysqlmp --opt -u$DB_USER -p$DB_PASS $DB_NAME | gzip > $BCK_DIR/db_$DATE.gz

然後使用將此腳本加到 /etc/crontab 定時任務中:
01 5 * * 0 mysql /home/mysql/backup.sh
好了,每周日凌晨 5:01 系統就會自動運行 backup.sh 文件備份 MySQL 資料庫了。
/home/www/inc/back
有點長,不過我是用心寫的,希望可以幫到你:www.linuxdby.com

❹ 如何使2台Linux伺服器通過FTP自動同步文件(用Shell腳本)

樓上正解。

熱點內容
創維四合一的光貓超級密碼多少 發布:2025-09-10 19:38:26 瀏覽:92
溫州瑞安dns伺服器地址 發布:2025-09-10 19:36:40 瀏覽:206
推廣平台源碼 發布:2025-09-10 19:33:40 瀏覽:865
光遇華為密碼哪裡看 發布:2025-09-10 19:33:37 瀏覽:238
用壓縮機抽空 發布:2025-09-10 19:09:36 瀏覽:947
pythonreplacere 發布:2025-09-10 18:49:15 瀏覽:327
python安裝mysqldb模塊 發布:2025-09-10 18:22:16 瀏覽:168
sql存儲過程實現 發布:2025-09-10 18:20:43 瀏覽:179
sqlserverin長度 發布:2025-09-10 18:03:07 瀏覽:282
網易mc電腦怎麼進伺服器 發布:2025-09-10 17:40:39 瀏覽:480