SFTPコマンドリファレンス
SSH経由のファイル転送のための完全なSFTPコマンドチートシート。
27 コマンド
sftp接続Connect to SFTP server
構文:
sftp [user@]host[:path]例:
sftp user@example.comsftp -P接続Connect on a specific port
構文:
sftp -P <port> user@host例:
sftp -P 2222 user@example.comsftp -i接続Connect using identity/key file
構文:
sftp -i <keyfile> user@host例:
sftp -i ~/.ssh/id_rsa user@example.comexit / quit / bye接続Close the SFTP connection
構文:
exit例:
exitlsナビゲーションList remote directory contents
構文:
ls [-l] [path]例:
ls -l /home/userllsナビゲーションList local directory contents
構文:
lls [path]例:
lls ~/DownloadspwdナビゲーションPrint remote working directory
構文:
pwd例:
pwdlpwdナビゲーションPrint local working directory
構文:
lpwd例:
lpwdcdナビゲーションChange remote directory
構文:
cd <path>例:
cd /var/www/htmllcdナビゲーションChange local directory
構文:
lcd <path>例:
lcd ~/projectsget転送Download file from remote to local
構文:
get <remote> [local]例:
get backup.tar.gzget -r転送Download directory recursively
構文:
get -r <dir> [local]例:
get -r /remote/dir ./localput転送Upload file from local to remote
構文:
put <local> [remote]例:
put index.html /var/www/put -r転送Upload directory recursively
構文:
put -r <dir> [remote]例:
put -r ./dist /var/www/mget転送Download multiple files matching pattern
構文:
mget <pattern>例:
mget *.logmput転送Upload multiple files matching pattern
構文:
mput <pattern>例:
mput *.jpgreget転送Resume an interrupted download
構文:
reget <remote> <local>例:
reget bigfile.zip bigfile.ziprm管理Remove remote file
構文:
rm <path>例:
rm /tmp/old.logrmdir管理Remove remote directory
構文:
rmdir <path>例:
rmdir /tmp/olddirmkdir管理Create remote directory
構文:
mkdir <path>例:
mkdir /var/www/uploadsrename管理Rename or move remote file
構文:
rename <old> <new>例:
rename old.txt new.txtchmod管理Change remote file permissions
構文:
chmod <mode> <path>例:
chmod 644 index.htmlchown管理Change remote file owner
構文:
chown <owner> <path>例:
chown www-data file.phpdf情報Show remote disk usage
構文:
df [-h]例:
df -hstat情報Show file attributes
構文:
stat <path>例:
stat /etc/passwdversion情報Show SFTP protocol version
構文:
version例:
versionhelp情報Show all available commands
構文:
help例:
helpこのツールについて
SFTP(SSH ファイル転送プロトコル)は、SSH接続を介してコンピュータ間で安全にファイルを転送する方法です。FTPなどの古いプロトコルと異なり、SFTPはエンドツーエンドの暗号化を提供し、データの傍受から保護し、認証認証情報の機密性を確保します。このリファレンスガイドは、最もよく使用されるSFTPコマンドを1つの場所にまとめ、開発者、システム管理者、DevOpsエンジニアが構文を暗記することなくファイル操作を実行しやすくします。
コマンドラインからSFTPを使用して、リモートサーバーに接続し、ディレクトリ構造を参照し、ファイルをアップロードおよびダウンロードし、権限を管理できます—すべてセキュアなトンネルを通じて。アプリケーションをデプロイする場合、構成をバックアップする場合、またはログを転送する場合でも、get、put、ls、cdなどのSFTPコマンドはワークフロー内の基本的なツールです。チートシート形式により、複数のドキュメントページ間で切り替えることなく、コマンド構文とオプションをすばやく検索できます。
このツールは、セキュリティと信頼性が重要な本番環境でリモートサーバーを操作する人にとって最も価値があります。DevOpsチーム、システム管理者、開発者は、SFTP構文の簡単なリファレンスを持つことで恩恵を受けます。特にファイル転送の問題をトラブルシューティングしたり、安全なファイル処理を学ぶ必要がある新しいチームメンバーをオンボードするときに有用です。
よくある質問
コード実装
import subprocess
import os
def sftp_connect(host: str, user: str, port: int = 22, key_file: str = None) -> list[str]:
"""Build an sftp command to connect to a remote host."""
cmd = ["sftp"]
if port != 22:
cmd.extend(["-P", str(port)])
if key_file:
cmd.extend(["-i", key_file])
cmd.append(f"{user}@{host}")
return cmd
def sftp_batch_commands(local_dir: str, remote_dir: str, files: list[str]) -> str:
"""Generate SFTP batch file commands for uploading multiple files."""
lines = [f"cd {remote_dir}", f"lcd {local_dir}"]
for f in files:
lines.append(f"put {f}")
lines.append("bye")
return "\n".join(lines)
# Example: create a batch file for SFTP upload
batch = sftp_batch_commands("/local/uploads", "/remote/data", ["a.csv", "b.csv"])
print("SFTP batch commands:")
print(batch)
# Write to batch file and run
with open("/tmp/sftp_batch.txt", "w") as bfile:
bfile.write(batch)
cmd = sftp_connect("example.com", "myuser") + ["-b", "/tmp/sftp_batch.txt"]
print("\nCommand:", " ".join(cmd))
# subprocess.run(cmd) # Uncomment to actually runComments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.