當前位置:首頁 » 文件傳輸 » ftp介面改造sql腳本
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

ftp介面改造sql腳本

發布時間: 2023-04-07 21:27:06

❶ Bat腳本處理ftp超強案例分析

前言 公司有幾百台windows伺服器 每次程序更新 如果是一台台拷數據 只怕安排十個人 一天都不一定做得完 所以就必須研究個全自動更新方案來 於是就想到了FTP 做個主FTP站 在幾百台客戶機上啟動BAT腳本 每 秒檢測一次 如果主站有更新程序 就自動下載更新 幾分鍾內 上 台windows伺服器 都可以全自動更新程序完畢 相當實用 現把當初研究BAT的腳本思路貼出來 希望對大批量運維人員一個方向 當然 批量更新伺服器 每個公司有它自己的解決辦法 這個BAT的方式不是最優的 可以用shell 可以用perl 也可以用python等腳本解決 一 FTP命令說明 在windows系統中因為FTP是一個程序 如果在bat腳本中直接調用FTP的命令 在執行時總會彈出命令行窗口 循環在>FTP游標這 所以要換種方式 利用 S:filename 更多的命令請輸入 h查看 FTP登錄成功後 需要下載遠程單個文件時 使用get命令 如果下載多個文件時 用mget 它支持通配符 在使用mget時 需要對每一個文件都進行選擇Y/N 如果想不交互的下載全部的文件 可以輸入一次prompt命令關閉交互方式 Mput和mget命令要注意兩個問題 Ⅰ 不能對目標文件指定命字 在命令行上所有的文件都視做源文件 Ⅱ mput mget兩個命令不能對目錄進行上傳與下載 只能對文件 Ⅲ Prompt 每次執行一個這個命令 就在on off之間循環 ftp腳本開始時 prompt默認為on 所以一般在上傳 下載文件時 執行一次prompt 把互動式的on關掉 變為off 文件的傳輸方式 Binary 二進制傳輸 Ascii ascII傳輸 在FTP文件傳輸過程中 ASCII傳輸HTML和文本編寫的文件 而二進制碼傳輸可以傳送文本和非文本(執行文件 壓縮文件 圖片等) 具有通用性 二進制碼傳輸速度比ASCII傳輸要快 所以在建立bat腳本時 一般輸入bin命令 啟用二進制傳輸 如果用ASCII模式傳輸非文本文件 可能會顯示一堆亂碼 如果是上傳一些CGI腳本 有可能將無法運行這類腳本 而在瀏覽器上看到server error的錯誤 Ascii和binary模式的區別是回車換行的處理 binary模式不對數據進行任何處理 asci模式將回車換行轉換為本機的回車字元 比如Unix下是 Windows下是 Mac下是 unix系統下行結束符是一個位元組 即十六進制的 A 而ms的系統是兩個位元組 即十六進制的 D A 所以當你用ascii方式從unix的ftp server下載文件時(不管是二進制或者文本文件 redhat的 vsftp默認是binary ascii默認關閉) 每檢測到一個位元組是 A 就會自動插入一個 D 所以如果你的文件是二進制文件比如可執行文件 壓縮包什麼的 就肯定不能用了 如果你的文件就是unix下的文本文件 你用 ascii模式是正確的 要是誤用了binary模式 你在windows上看這個文件是沒有換行的 裡面是一個個的黑方塊 在用FTP客戶端傳輸文件時 因為這些軟體都做得比較智能化 它可以根據後綴 自動啟用傳輸模式 所以不用擔心出問題 二 實例求證 環境說明 上有一FTP伺服器端(windows版) FTP用戶名為lgh 密碼為 該用戶的根目錄為D lgh 裡面文件見下圖 sql rar是sql bat的壓縮文件 大家注意看圖 我等下會在後面的實例中引用這個文件 把mget get prompt bin ascii等ftp命令詮釋得一清二白

實例一 直接BAT調用FTP命令 ftpbat bat內容 (***大家建立bat文件不要命名為ftp bat 執行時會有問題***)

復制代碼 代碼如下:

ftp open lgh get sql rar bye

從圖上的結果看 bat腳本直接調用xp的FTP命令是不行的 執行時H:>ftp會一直死循環 我這里的XP系統是SP 的 其它版本的 我沒有作測試 如果有不同 歡迎大家留言告之 實例二 用put get上傳 下載單個文件 把XP機器上H:js目錄下文件flower zip上傳到FTP伺服器 把FTP伺服器中的sql rar文件下載到XP機器上的H:JS目錄 ftp get put bat內容如下

復制代碼 代碼如下:

@echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo lgh >> %ftpfilename% echo >> %ftpfilename% echo bin >> %ftpfilename% echo lcd h:js >> %ftpfilename% echo get sql rar >> %ftpfilename% echo put flower zip >> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%

我們來看看結果 見下面兩張圖 從XP系統上看 H盤的JS目錄 多了個sql rar FTP伺服器上的根目錄多了個flower zip 這說明 剛才的腳本完成正常的執行了 達到了預期的目的

實例三 用put get上傳 下載多個文件 在XP機器上把flower zip復制一次 改名為flower zip 在XP機器上把把第二次實例下載的sql rar文件刪除 以免影響到本次操作 在FTP伺服器上把第二次實例上傳的flower zip文件刪除 以免影響到本次操作 把XP機器上H:js目錄下文件flower zip 和flower zip上傳到FTP伺服器 ftp get put many bat內容如下

復制代碼 代碼如下:

@echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo lgh >> %ftpfilename% echo >> %ftpfilename% echo bin >> %ftpfilename% echo lcd h:js >> %ftpfilename% echo put flower zip flower zip>> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%

到FTP伺服器上查看根目錄 看flower zip與flower zip是否已成功上傳 從圖上看 只成功上傳了flower zip文件

剛那個ftp get put many bat腳本里echo put flower zip flower zip>> %ftpfilename% flower zip是傳輸的最後一個文件 是不是用put時 意味著bat在處理上傳時 只認最後一個文件呢 我們再多加個文件flower zip 來驗證

在XP機器上把flower zip復制一次 改名為flower zip在FTP伺服器上把第二次實例上傳的flower zip文件刪除 以免影響到本次操作

ftp get put many bat內容修改如下

復制代碼 代碼如下:

@echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo lgh >> %ftpfilename% echo >> %ftpfilename% echo bin >> %ftpfilename% echo lcd h:js >> %ftpfilename% echo put flower zip flower zip flower zip>> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%

結果 還是只成功上傳了flower zip 因bat雙擊時 執行過程會一閃而過 我們看不到執行過程 到命令行去執行下 看到底出了什麼問題

命令行 執行ftp get put many bat腳本 從執行情況看 flower zip三個文件都是put的 但在傳輸時 卻只傳了flower zip 真不解 有知道的朋友嗎?給點方向

再換個方式 用通配符* 試試 ftp get put many bat內容修改如下

復制代碼 代碼如下:

@echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo lgh >> %ftpfilename% echo >> %ftpfilename% echo bin >> %ftpfilename% echo lcd h:js >> %ftpfilename% echo put flower* zip >> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%

在FTP伺服器上把上傳的flower文件全部刪除 以免影響到本次操作執行ftp get put many bat 結果只有flower zip文件上傳成功了 呵 flower zip文件 怎麼都不能上傳 ???

其實用put傳輸多個文件 完全可用重復的方式取代 比如 ftp get put many bat內容修改如下

復制代碼 代碼如下:

@echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo lgh >> %ftpfilename% echo >> %ftpfilename% echo bin >> %ftpfilename% echo lcd h:js >> %ftpfilename% echo put flower zip >> %ftpfilename% echo put flower zip >> %ftpfilename% echo put flower zip >> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%

實例四 用mput mget上傳 下載多個文件 在FTP伺服器上刪除有關flower的文件

ftp mget mput many bat內容如下:

復制代碼 代碼如下:

@echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo lgh >> %ftpfilename% echo >> %ftpfilename% echo bin >> %ftpfilename% echo lcd h:js >> %ftpfilename% echo mput flower zip flower zip flower zip>> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%

雙擊ftp mget mput many bat後 發現系統彈出一窗口後 就卡住了 停止不前

原因是用了mput命令 但沒有用Prompt關閉交互

ftp mget mput many bat內容修改如下:

復制代碼 代碼如下:

@echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo lgh >> %ftpfilename% echo >> %ftpfilename% echo Prompt >> %ftpfilename% echo bin >> %ftpfilename% echo lcd h:js >> %ftpfilename% echo mput flower zip flower zip flower zip>> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%

再次執行ftp mget mput many bat 結果見下圖

用通配符*試試在FTP伺服器上刪除有關flower的文件ftp mget mput many bat內容修改如下:

復制代碼 代碼如下:

@echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo lgh >> %ftpfilename% echo >> %ftpfilename% echo Prompt >> %ftpfilename% echo bin >> %ftpfilename% echo lcd h:js >> %ftpfilename% echo mput flower* zip >> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%

照樣成功上傳有關flower* zip文件 因為結果與上一步是一樣的 所以就不抓圖了 實例五 用ascii在windows系統間傳輸非文本文件 把XP電腦上的rmb jpg通過ascii傳到FTP伺服器的根目錄

ftp get ascii bat內容修改如下:

復制代碼 代碼如下:

@echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo lgh >> %ftpfilename% echo >> %ftpfilename% echo ascii >> %ftpfilename% echo lcd h:js >> %ftpfilename% echo put rmb jpg>> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%

執行ftp get ascii bat後 發現rmb jpg可以正常上傳 並且可以正常打開 那 這個現象與前面所以的ascii不能傳輸非文本東西有出入 這是怎麼回會事呢 這是因為 FTP伺服器是WINDOWS系統 XP電腦上的bat腳本也是在windows系統上運行的 所以bat在windows系統里用FTP傳輸文件 不管是用ascii 還是用binary 都是可以的 接下來我們再做一個實驗 FTP伺服器選centos 再測下ascii傳輸非文本文件問題 實例六 用ascii在windows系統與linux系統間傳輸非文本文件 在RHEL 位系統上建立一vsftpd伺服器 上面說過redhat默認啟用二進制傳輸 關閉了ascii碼傳輸 所以我們還要修改一下vsftpd的配置文件 修改/etc/vsftpd/nf文件 允許客戶端進行ascii傳輸 並重啟vsftpd

把rmb jpg放到FTP伺服器 大家注意下H:js目錄下只有ftp getascii bat文件

ftp getascii bat文件內容修改如下

復制代碼 代碼如下:

@echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo ftp >> %ftpfilename% echo redhat >> %ftpfilename% echo asc >> %ftpfilename% echo lcd h:js >> %ftpfilename% echo get rmb jpg >> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%

執行ftp getascii bat 看結果 rmb jpg文件有下載到XP電腦里 雙擊這個文件 發現圖像亂碼 文件被破壞了 都是ascii碼傳輸惹的禍

換bin傳輸 測試一下在XP電腦上刪除rmb jpg文件 再雙擊ftp getascii bat文件 去從LINUX的FTP伺服器下載一個rmb jpg文件

修改ftp getascii bat 把ascii改給二進制傳輸

復制代碼 代碼如下:

@echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo ftp >> %ftpfilename% echo redhat >> %ftpfilename% echo bin >> %ftpfilename% echo lcd h:js >> %ftpfilename% echo get rmb jpg >> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%

結果 文件正常下載 圖像也顯示正常 lishixin/Article/program/qrs/201401/30223

❷ ftp怎麼連接sqlservice資料庫 網站傳上去了,數據也傳上去了。

你好!
FTP連接不到sqlserver上,只能連到空間上。SQLSERVER有兩種方法,一是傳到空間上,讓空間商幫你弄,別一種是通過你自己本地SQL資料庫連接到伺服器的資料庫上。如果你要上傳到空間上就是導出然後壓縮到壓縮包傳上去。希望對你有幫助
如果對你有幫助,望採納。

❸ sql語言寫FTP上傳,如何寫加埠號

第一步,先新建一個文本:
Open 10.31.15.3 2802
User anonymous123456Cd dataBinPrompt簡敏梁Mget *.*
ByeQuitExit將該文本保存為1.FTP存放到C盤根目錄。該文件只要擴展名為FTP,前綴可任意取名。目錄也不一定要在根目錄,主要以方便為主。文本中Bin為用二進制碼格式傳輸文件,如用ASCII碼格式傳輸文件可去掉該行。如為本機向對方機發送文件,則只要將文本中的Mget替換成Mput即可。這之後,再新建另一個文本:C:Cd datatran
FTP–n–s:c:\1.FTP
新建完畢後將該文本保存為1.bat後存放在硬碟任何分區或軟盤中均可。這樣,第一步攔運工作拿中已經完成,您隨時可以執行該批處理文件進行FTP文件的傳輸。在用sql調用bat就可以了

❹ 如何在FTP空間配置資料庫

一 備份數據 1,利用PW後台的數據備份功能進行備份.注意的是在備份數據的時候,為了數據的完整性,建議最好先關閉論壇,後台更新所有緩存和索引. 2,利用phpmyadmin,進行備份,具體如何備份,這里就不介紹.不清楚的可以查閱相關文檔,很簡單的.這里備份的文件是一個獨立sql文件. 以上方法一般適用與中小型論壇的備份,數據量比較小的時候還是很實用的,一般多為虛擬主機用戶使用.大型論壇的備份一般是 3,4兩種操作..主要是比較簡單操作,一些我個人認為比較復雜且不是很實用的方法就不介紹了不如通過Mysqlhot,使用binlog機制,增加mysql的事物日誌記錄等,這里就不介紹了.以下下操作一般有伺服器許可權的朋友才可以的. 3,直接復制或者打包資料庫文件,復制文件夾,大家應該都明白,我們來講打包,linux下用tar命令實現簡單有效,速度快.Win 下,直接用winrar或者winzip 搞定.注意需要暫停mysql服務. 4,Mysqlmp,是mysql自帶的腳本,假如資料庫名為abc,用戶名為:abcuser,密碼為123,,那應該使用 命令: mysqlmp -uabcuser -p123 adc > pwabc_bak.sql ,pwabc_bak.sql 你可以任意的命名. 二 數據還原 1,針對第一種備份方法,也是最普遍使用的.在恢復論壇數據的時候,要關閉php.ini文件中的safe mode,恢復完數據後,再打開SAFE MODE就可以了。(自己伺服器得才需要此設置,普通虛擬空間用戶不用此設置) >>用FTP軟體下載老論壇所有文件 >>將所有文件上傳至新空間 >>打開網頁 你的論壇地址/admin.php 用你的論壇創始人帳號登陸 >>數據恢復(隨便點一個文件,程序會自動將剩餘文件導入的) 以上方法可保留所有數據及插件和模板。 對於不需要模板的或者不需要原來的插件的 >>老論壇備份數據,用FTP拉到本地。(具體在data目錄下) >>上傳程序包里的文件到新空間,全新安裝 >>用FTP軟體將備份的數據上傳到新空間的data目錄下 >>用論壇創始人帳號進入後台,數據恢復 如果後台資料庫忘記了,可以直接修改sql_config.php里的資料庫帳號和創始人帳號密碼!這里輸入的創始人密碼不能直接是明文.需要是MD5加密過後的. 這里就給大家一個簡單的 MD5密文 [] 明文 [123456]之後就可以通過/admin.php 剛才修改的帳戶密碼登陸論壇了.. 2,對於phpmysql備份的數據,在2M以下可以直接導入資料庫中(至於怎麼導,看相關文檔,很簡單.)數據量很大的情況只能到伺服器上,伺服器上 mysql 命令導入(具體導入將在"4"中介紹)虛擬主機用戶,那麼就得聯系你的空間商,讓他們協助完成數據的恢復. 3,對於打包資料庫文件的,可以直接解壓 把資料庫文件 放到你資料庫名的目錄下. 在linux下注意資料庫文件的許可權.一般都是mysql:mysql. Win 下關系不是很大,除非你做了特殊的許可權設置. 4,對於mysqlmp 導出數據, 按照備份數據中的舉例用戶來演示, 則命令為: mysql -uabcuser -p123 abc < abc_bak.sql 注意: 無任何錯誤一般來說就是正常完成。通常在使用 phpmyadmin 導入的sql腳本中有create database語句,會導致導入數據出錯,因為database 已經存在,把這段語句刪除之,再次檢查客戶的建表語句前是否有drop表的語句,如果沒有,而原資料庫存在同名表格,也會出錯,這時需要清空原資料庫.

❺ 能使用SQL語句從ftp上拿txt文件並實現入庫嗎

原則上不建議這么做,可以這么來實現
1、使用程序,定時監視並掃描FTP上的新文件
2、一旦發現新文件,立即下載沒纖拍
3、下載完成枯羨後,調用資料庫對象對其進行處理。
總結:SQL不是萬能的,SQL擅長的是數據操作,所以,應該用這些軟體所擅長的功豎嘩能,不要在SQL裡面做SQL不擅長的事情。

❻ FTP中的網頁如何連接雲端的sql資料庫

首先要先設置資料庫可以遠程訪問,然後記下資料庫伺服器的域名或者ip,登錄資料庫的用戶名+密碼,資料庫名。
然後就看你所使用的動態語言了

❼ FTP網站怎麼連接sqlserver資料庫文件

ftp和sqlserver資料庫文件沒多鏈念大關系的
bak的備份還原不是通過ftp上傳到空間就OK;
一般情況下:空間控制面板有個資料庫備份還原的操作,點擊操作後會讓你選擇本地的bak備份文件上傳,最後李喚悶還原會提示是否覆蓋;
有服哪彎務器的許可權,直接上傳到sqlserver資料庫目錄,
打開SQL Server Management Studio進行還原備份。

❽ ftp怎麼連接sqlservice資料庫 網站傳上去了,數據也傳上去了。

FTP主要是用來上傳網站源碼的,如果你的資料庫是access資料庫,可以直接上傳,不用改連接資料庫的路徑就能直接用了。
但是如果是SqlServer或者MySql資料庫,必須到空間控制面板去把資料庫導入到空間裡面,直接上傳到FTP裡面是沒用的,導入成功以後,還需要在程序源碼中修改連接數據的用戶名和密碼,必須跟空間分配的那個保持一致。
如果你不知道資料庫在哪兒連接上傳的話,最好是咨詢下你的空間商,不同空間商控制面板都不一樣,所以還是咨詢你的空間商比較靠譜。

❾ 如何將遠程FTP地址上的文件定製導入到SQL資料庫

如果遠程FTP是unix就好了,可以用sh腳本。