回車提示輸入密碼。進入提示符sftp如果登陸遠程機器不是為了上傳下載文件,而是要修改遠程主機上的某些文件。可以 ssh [email protected] (其實sftp就是ssh 的一個程式。) sftp get /var/www/fuyatao/index.php /home/fuyatao/ 這條語句將從遠程主機的 /var/www/fuyatao/目錄下將 index.php 下載到本地 /home/fuyatao/目錄下。 sftp put /home/fuyatao/downloads/Linuxgl.pdf /var/www/fuyatao/ 這條語句將把本地 /home/fuyatao/downloads/目錄下的 linuxgl.pdf文件上傳至遠程主機/var/www/fuyatao/ 目錄下。 改變路徑可以用cd ,改變本機路徑可以用 lcd; ls rm rmdir mkdir 這些命令都可以使用。同理調用本機都是加 l , 即 lls lrm. 要離開sftp,用exit 或quit、 bye 均可。詳細情況可以查閱 man sftp. 如果覺得在命令行模式下不太方便,可以 sudo apt-get install gftp。在圖形界面下操作就簡便多了。
2. python,求助,伺服器走的sftp協議,怎麼獲取上面的文件
用paramiko模塊
importparamiko
defsftp_get(file):
CONST_HOST="1.1.1.1"
CONST_USERNAME="root"
CONST_PWD="password"
讓宏CONST_PORT=22
try:
t=paramiko.Transport((CONST_HOST,CONST_PORT))
t.connect(username=CONST_USERNAME,password=CONST_PWD)
sftp=paramiko.SFTPClient.from_transport(t)
兆臘des=os.getcwd()+'\test.txt'
#file為你要下載的文件,des為你保存該文件的路徑
sftp.get(file,des)
t.close()
族滑滑print'download%sto%sok'%(file,des)
returnTrue
exceptException,e:
raisee
3. linux的sftp命令
linux下sftp命令很多人都只是了解了語法卻不知道具體用法,下面由我為大家整理了linux下sftp命令的相關知識,希望對大家有幫助!
linux的sftp命令
1.常用登陸方式:
格式:sftp 《user》@《host》
通過sftp連接《host》,埠為默認的22,指定用戶《user》。
2.查看sftp支持的命令
使用help命令,查看支持的命令,如:
sftp》help
(其中命令前面有“l”表示本地執行,其他表示在所登錄的遠程主機上面執行)
3.基本的使用
sftp主要是用來傳輸文件的,包括上傳文件(從本機到遠程主機) ,下載文件(從遠程主機到本機)。
(1)文件下載
get [-Ppr] remote [local]
如:get test.cpp 。/Project/
將遠程當前目錄下的文件test.cpp下載到本地當前目錄的Project文件夾中。
(2)文件上傳
put [-Ppr] local [remote]
如:put /home/liu/Software/RHEL_5.5 x86_64.iso /home/xudong/Blog/
將本地/home/liu/Software/目錄下的ios文件傳送到遠程登陸主機的/home/xudong/Blog/目錄下。
(3)其他命令
可以使用命令還是有幾個的,如ls、lls;cd、lcd;pwd、lpwd等。具體查看help輸出吧。
sftp就是secure file transfer program,它基於ssh,用它在兩個Linux系統間傳遞文檔非常方便。
要使用sftp傳遞文檔,首先應該在伺服器端打開ssh服務,如果沒有打開,一般可以通過下面的命令打開:
# /etc/init.d/sshd start
然後就可以在客戶端通過sftp登錄伺服器端進行文檔傳遞操作,如下:
$ sftp [-oPort=port_number] username@server_ip[:file1 file2 。。。]
補充:Linux的sftp命令的參數說明
-o 用來向ssh傳遞參數,比如-oPort=222,會告訴ssh使用連接伺服器的222埠,而不是默認的22埠。這個在遇到伺服器端把ssh服務默認的22號埠改變的情況時會有用。
後面的file1、file2代表文件名,也可以是一個目錄。在沒有指定文件時會打開一個交互界面,在交互界面下可以通過命令來傳遞文檔。
如:
$ sftp -o port = 222 [email protected]
Linux的sftp命令的命令說明
在sftp命令的交互界面下,有很多命令可以用,比如:cd、ls、pwd、bye、chmod、chgrp、chown、df、get、help、mkdir等等。當然這些命令都是針對伺服器端的操作,其中一些命令在加l前綴的情況下可以實現在本地下的操作。比如,lpwd命令會列印本地當前工作目錄(即連接sftp前的當前工作目錄)。這些命令中有兩個是用來交換文檔的,它們是get和put命令,如下:
》 put local_path [remote_path]
》 get remote_path [lcoal_path]
put 命令會把本地文件或目錄“推”到伺服器端;get命令則把伺服器端文件或目錄“拉”下來。
上面就是Linux使用sftp命令傳輸文件相關介紹了,相較於ftp而已,sftp命令傳輸文件更加安全,推薦使用sftp命令傳文件。
4. 如何使用 SFTP 安全地傳輸文件
1.常用登陸方式:
格式:sftp <user>@<host>
通過sftp連接<host>,埠為默認的22,指定用戶<user>。
2.查看sftp支持的命令
使用help命令,查看支持的命令,如:
sftp>help
(其中命令前面有「l」表示本地執行,其他表示在所登錄的遠程主機上面執行)
3.基本的使用
sftp主要是用來傳輸文件的,包括上傳文件(從本機到遠程主機) ,下載文件(從遠程主機到本機)。
(1)文件下載
get [-Ppr] remote [local]
如:get test.cpp ./Project/
將遠程當前目錄下的文件test.cpp下載到本地當前目錄的Project文件夾中。
(2)文件上傳
put [-Ppr] local [remote]
如:put /home/liu/Software/RHEL_5.5\ x86_64.iso /home/xudong/Blog/
將本地/home/liu/Software/目錄下的ios文件傳送到遠程登陸主機的/home/xudong/Blog/目錄下。
(3)其他命令
可以使用命令還是有幾個的,如ls、lls;cd、lcd;pwd、lpwd等。具體查看help輸出吧。
5. 純干貨!python 在運維中的應用 (一):批量 ssh/sftp
日常工作中需要大量、頻繁地使用ssh到伺服器查看、拉取相關的信息或者對伺服器進行變更。目前公司大量使用的shell,但是隨著邏輯的復雜化、腳本管理的精細化,shell已經不滿足日常需求,於是我嘗試整合工作中的需求,製作適合的工具。 由於管理制度的缺陷,我以工作流程為核心思考適合自己的運維方式,提升工作效率,把時間留給更有價值的事情。 完整代碼在最後,請大家參考。
生產:4000+物理伺服器,近 3000 台虛擬機。
開發環境:python3.6、redhat7.9,除了paramiko為第三方模塊需要自己安裝,其他的直接import即可。
批量執行操作是一把雙刃劍。批量執行操作可以提升工作效率,但是隨之而來的風險不可忽略。
風險案例如下:
掛載很多數據盤,通常先格式化硬碟,再掛載數據盤,最後再寫入將開機掛載信息寫入/etc/fstab文件。在批量lsblk檢查硬碟信息的時候發現有的系統盤在/sda有的在/sdm,如果不事先檢查機器相關配置是否一致直接按照工作經驗去執行批量操作,會很容易造成個人難以承受的災難。
在執行批量操作時按照慣例:格式化硬碟->掛載->開機掛載的順序去執行,假設有的機器因為某些故障導致格式化硬碟沒法正確執行。在處理這類問題的時候通常會先提取出失敗的ip,並再按照慣例執行操作。運維人員會很容易忽略開機掛載的信息已經寫過了,導致復寫(這都是血和淚的教訓)。
所以,為了避免故障,提升工作效率,我認為應當建立團隊在工作上的共識,應當遵守以下原則:
當然,代碼的規范也應當重視起來,不僅是為了便於審計,同時也需要便於溯源。我認為應當注意以下幾點:
1、ssh no existing session,sftp超時時間設置:
在代碼無錯的情況下大量ip出現No existing session,排查後定位在代碼的寫法上,下面是一個正確的示例。由於最開始沒考慮到ssh連接的幾種情況導致了重寫好幾遍。另外sftp的實例貌似不能直接設置連接超時時間,所以我採用了先建立ssh連接再打開sftp的方法。
2、sftp中的get()和put()方法僅能傳文件,不支持直接傳目錄:
不能直接傳目錄,那換個思路,遍歷路徑中的目錄和文件,先創建目錄再傳文件就能達到一樣的效果了。在paramiko的sftp中sftp.listdir_attr()方法可以獲取遠程路徑中的文件、目錄信息。那麼我們可以寫一個遞歸來遍歷遠程路徑中的所有文件和目錄(傳入一個列表是為了接收遞歸返回的值)。
python自帶的os模塊中的os.walk()方法可以遍歷到本地路徑中的目錄和文件。
3、多線程多個ip使用sftp.get()方法時無法並發。
改成多進程即可。
4、多個ip需要執行相同命令或不同的命令。
由於是日常使用的場景不會很復雜,所以借鑒了ansible的playbook,讀取提前准備好的配置文件即可,然後再整合到之前定義的ssh函數中。
同時,我們還衍生出一個需求,既然都要讀取配置,那同樣也可以提前把ip地址准備在文件里。正好也能讀取我們返回的執行程序的結果。
參數說明:
密碼認證:
公鑰認證:
可以配合 grep,awk 等命令精準過濾。
個人認為 Python 在初中級運維工作中的性質更像是工具,以提升工作效率、減少管理成本為主。可以從當前繁瑣的工作中解脫出來,去 探索 更有價值的事情。python 本質上並不會減少故障的產生,所以在不同的階段合理利用自身掌握的知識解決當前最重要的痛點,千萬不要本末倒置。
6. Linux 從A用sftp連接B
Linux 從A用sftp連接B的命令是:sftp -oPort=60001 [email protected]。使用-o選項來指定埠號。-oPort=遠程埠號sftp> get /var/www/fuyatao/index.php /home/fuyatao/。這條語句將從遠程主機的 /var/www/fuyatao/目錄下將 index.php。
然後下載到本地 /home/fuyatao/目錄下。
sftp> put /home/fuyatao/downloads/Linuxgl.pdf/var/www/fuyatao/
這條語句將把本地 /home/fuyatao/downloads/目錄下的 linuxgl.pdf文件上傳至遠程主機/var/www/fuyatao/ 目錄下。
linuxftp遠程連接命令是:
1. 連接ftp伺服器:格式:ftp [hostname| ip-address]在linux命令行下輸入:ftp 192.168.26.66
伺服器詢問你用戶名和口令,分別輸入用戶名和相應密碼,待認證通過即可。
2、下載文件:下載文件通常用get和mget這兩條命令。a) get格式:get [remote-file] [local-file]
將文件從遠端主機中傳送至本地主機中。
3、上傳文件:a) put格式:put local-file [remote-file],將本地一個文件傳送至遠端主機中。
4、斷開連接:bye:中斷與伺服器的連接。ftp> bye (回車)。
7. centos7 中使用sftp窗口的get命令下載文件到Windows,請問下載到了Windows的哪個目錄
應該是 c:\users\your_user_name
和你的 用戶名有關系的那個
去 看看