linuxftp上傳腳本
腳本ftp.sh如下:
#!/bin/bash
#Usage: sh ftp.sh <ip> <user> <pass> <localdir> <file> <remotedir>
#ftp files
echo "
open $1
passive
prompt off
user $2 $3
binary
lcd $4
cd $6
mput $5
close
bye
" |ftp -v -n |tee autoftp.log >/dev/null
SUCC="226 File receive OK."
RESULT=`grep -I "${SUCC}" autoftp.log`
rm -rf autoftp.log
if [ "${RESULT}" = "${SUCC}" ]
then
#echo "succeed"
exit 0
else
exit 1
fi
注釋:首先登陸ftp,並使用binary方式上傳上傳文件;將ftp輸出的信息重定向到 autoftp.log,然後判斷autoftp.log中是否包含上傳成功的信息;
如果成功,腳本返回0,如不成功,返回1;
在C程序中調用的方法:if (system(:sh ftp.sh %s %s %s %s %s %s:) == 0) printf("上傳成功");
B. linux系統用shell寫個腳本ftp上傳下載文件,文件名帶日期。
這個不是一句話搞定的
vi xxxx.sh 寫一個腳本
#/bin/bash
DATE=`date "%Y%M%D"`
DIR=/xxxxx/xxx
cd $DIR
lftp -pxxx [email protected]
cd xxxxx
get $DATE.txt
exit
chmod +x xxxx.sh
然後 sh xxxx.sh
大致的結構這樣,具體的你要好好研究一下shell才可以。
C. 請教一下大神,做了個linux ftp上傳腳本,請問怎樣才能實現本地文件上傳完成立馬刪除本地文件
後面接著寫:
cd /usr/tiqs2/data
rm -rf *
D. Linux文件傳輸命令有哪些
Linux下幾種文件傳輸命令 sz rz sftp scp介紹
1.sftp
Secure Ftp
是一個基於SSH安全協議的文件傳輸管理工具。由於它是基於SSH的,會在傳輸過程中對用戶的密碼、數據等敏感信息進行加密,因此可以有效的防止用戶信息
在傳輸的過程中被竊取,比FTP有更高的安全性。在功能方面與FTP很類似,不僅可以傳輸文件數據,而且可以進行遠程的文件管理(如建立,刪除,查看文件
列表等操作)。Sftp與ftp雖然只有一字之差,但基於的傳輸協議卻是不同的。因此不能用sftp client去連接ftp server 也不能用
ftp client 去連接 sftp server。
建立連接:sftp user@host
從本地上傳文件:put localpath
下載文件:get remotepath
與遠程相對應的本地操作,只需要在命令前加上」l」 即可,方便好記。
例如:lcd lpwd lmkdir
2.scp
SCP :secure (remote file program) 也是一個基於SSH安全協議的文件傳輸命令。與sftp不同的是,它只提供主機間的文件傳輸功能,沒有文件管理的功能。
復制local_file 到遠程目錄remote_folder下
scp local_file remote_user@host:remote_folder
復制local_folder 到遠程remote_folder(需要加參數 -r 遞歸)
scp –r local_folder remote_user@host:remote_folder
以上命令反過來寫就是遠程復制到本地
3.sz/rz
sz/rz 是基於ZModem傳輸協議的命令。對傳輸的數據會進行核查,並且有很好的傳輸性能。使用起來更是非常方便,但前提是window端需要有能夠支持ZModem的telnet或者SSH客戶端,例如secureCRT。
首先需要在secureCRT中可以配置相關的本地下載和上傳目錄,然後用rz、sz命令即可方便的傳輸文件數據。
下載數據到本地下載目錄:sz filename1 filename2 …
上傳數據到遠程:執行rz –be 命令,客戶端會彈出上傳窗口,用戶自行選擇(可多選)要上傳的文件即可。
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. 想將ubuntu下某個文件夾下的文件定時上傳至FTP或者共享文件夾,也可以直接傳至另一台LINUX上使用。
寫的一個簡單腳本.
linux1 = A (不定時生成文件)
linux2 = B (需隔一天後使用文件)
B 主機必須提供FTP服務,建立相應的FTP用戶,具備相應的上傳許可權和容量等.
/home/backup :文件備份臨時目錄
/home/bak :本地文件備份目錄
注意:如果伺服器語言為英文,請將腳本內中文注釋改為英文或刪除.
A 主機
-----------------------------------------------------------------------
mkdir /home/backup
mkdir /home/bak
vi /home/backup.sh
vi /etc/crontab
30 2 * * * root /home/backup.sh
#建立目錄,設置每天2:30定時執行備份腳本
backup.sh內容
#!/bin/bash
#
# 說明:
# 自動備份本機文件到遠程FTP
#
PATH=/bin:/usr/bin:/sbin:/usr/sbin
LANG=C
LC_ALL=C
# 設置A路徑
date='date +%Y-%m-%d'
bakdir=/home/backup
home=/home
# A主機 "/etc/目錄下的文件"
cp -a /etc/* $bakdir
# 延遲20S,等文件拷貝結束
sleep 20s
sync;sync
# 在本機壓縮與打包
cd $bakdir
tar -zcf "$date".tar.gz *
sleep 20s
sync;sync
# 備份到B主機
id="username"
pw="yourpassword"
cd= $bakdir
# 利用FTP備份到192.168.1.200
ftp -n 192.168.1.200 > $home/ftp.log 2>&1 <<EOC
user $id $pw
binary
cd $bakdir
put "$date".tar.gz
bye EOC
sync;sync
# 移動到本機備份
mv $bakdir/"$date".tar.gz $bakdir/bak
sleep 20s
sync;sync
G. linux下用什麼軟體ftp自動上傳文件
用FTP工具啊,比如8Uftp,IIS7伺服器管理軟體
說實話,這個IIS7伺服器管理工具算是比較好的管理工具了。裡面的功能除了批量管理,還有很多別的功能,主要也是功能也比較全面,相信大多數使用的網站工作人員都比較熟悉了。它裡面還能夠定時上傳下載、定時備份和主動更新。把你花在更新上的經歷都省了。
IIS7伺服器管理工具除了在ftp上面有這么多的功能以外,它別的功能也都是比較實用的。適用在Windows和liunx操作系統。還支持Vnc和Ftp批量操作。同時它還具有同步操作、到期提醒、數據安全和定期執行的功能。我是挺喜歡的,使用比較便捷。
H. linux下ftp伺服器的上傳下載的過程
在我用的所有ftp伺服器中來說,首推iis7伺服器管理工具,而且一直在用,感覺非常好。它可以作為FTP的客戶端,想要進行FTP的上傳下載操作,只需要下載安裝iis7伺服器管理工具就可以了,操作不復雜!
簡單的介紹一下iis7伺服器管理工具:可以批量管理WIN系列伺服器、VPS、批量導入伺服器VPS的IP,埠,賬號和密碼 、批量打開N個伺服器VPS的遠程桌面、遠程桌面後,遠程窗口右上角會出現 伺服器備注的信息,如鄭州xxx號伺服器 5、遠程桌面後,不影響任務欄顯示。可以及時看其他窗口。支持多種方式連接,操作簡潔,自身附帶教程。
第一步:點擊主程序圖中「上傳下載」鍵;
第二步:點擊「 Ftp」;
第三步:點擊「添加」;
第四步:在彈出伺服器信息框中填寫Ftp信息,注意:FIP ip埠、賬號、密碼為必填項;
第五步:選擇需要打開的FTP伺服器;
第六步:點擊打開,即刻見FTP效果圖。