2012年3月1日 星期四

藉由Terminal(終端機)通過SSH文件傳輸協議瀏覽伺服器上的檔案協議

因為我們學校的Web Programming的服務器安全協議是ssh。
所以就靠著老師的講義以及全知的好朋友--Google先生大致學會了……


PS:以下內容OS目前確定Linux和MacOS可用,windows不確定,可能可以藉由putty來執行
另外,沒特別註明的話,就是說sftp和ssh都可用該code

瀏覽


首先,瀏覽檔案的話可以選用sftp或ssh來瀏覽
$ sftp UserName@host
$ ssh UserName@host

有興趣的話可以觀看其說明:
sftp:
usage: sftp [-1246Cpqrv] [-B buffer_size] [-b batchfile] [-c cipher]
          [-D sftp_server_path] [-F ssh_config] [-i identity_file]
          [-o ssh_option] [-P port] [-R num_requests] [-S program]
          [-s subsystem | sftp_server] host
       sftp [user@]host[:file ...]
       sftp [user@]host[:dir[/]]
       sftp -b batchfile [user@]host

ssh:
usage: ssh [-1246AaCfgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]
           [-D [bind_address:]port] [-e escape_char] [-F configfile]
           [-I pkcs11] [-i identity_file]
           [-L [bind_address:]port:host:hostport]
           [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]
           [-R [bind_address:]port:host:hostport] [-S ctl_path]
           [-W host:port] [-w local_tun[:remote_tun]]
           [user@]hostname [command]


瀏覽


基本上用Terminal(終端機)都知道ls這代碼吧……
$ ls
然後,如果要看檔案權限,則用以下代碼:
$ ls -l
顯示類似下面這樣:
drwxr-xr-x 3 shiyou shiyou 4096 2011-04-28 18:47 MyFolder

最左方的「drwxr-xr-x」是權限的資料……
如果要變更要用chmod
$ chmod o+rx MyFolder
$ chmod 604 MyFolder
第一種寫法是直接用告知伺服器rwt的資料……第二種寫法是靠權限代碼來更改……
是說,因為第一種寫法我還是不完全理解,所以我會偏好第二種……

新建資料夾


用以下代碼建立
$ mkdir FolderName
是說,如果用mkdir來建立,該資料夾會是public read不能,所以要記得用chmod來更改……

是說,寫到一半才發現說無論是mkdir還是chmod,都是php有的function……
這是當初故意這樣設計方便使用者嗎……

上傳/下載


目前以我所知,ssh無法進行上傳/下載的動作,所以只能用sftp……
上傳用put;下載用get,支持*來上傳/下載大量檔案,不過貌似不支持上傳/下載資料夾……
put file
get file

沒有留言:

張貼留言