Docs
AI Agent Skill for SFTP deployment and server management. Works with Antigravity, Claude Desktop, and Claude Code.From the repository description
npx -y skills add JunSuzuki1973/ftpSkill --skill docsAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
8.4 KB, ~3.1k tokens by cl100k_base, as published. Nobody here has run it
Agent Skill: sftp-deployer
概要
レンタルサーバーへの自動デプロイと管理を行う汎用的なスキルセットです。GUIベースのFTPクライアントと同等の機能をコマンドラインから利用でき、AIエージェントが自動的に操作できます。
対応サーバー
- SSH/SFTP接続が可能な任意のサーバー
- パスワード認証またはSSH公開鍵認証に対応
- レンタルサーバー、VPS、クラウドサーバーなど
トリガー
- ユーザーが「デプロイして」「サーバーにアップして」「ファイルを確認して」などと指示した場合
使用可能なツール
📤 アップロード・デプロイ
- sftp_deploy.py - ファイル/ディレクトリのアップロード
- sftp_mkdir.py - リモートディレクトリの作成
📥 ダウンロード・バックアップ
- sftp_download.py - ファイル/ディレクトリのダウンロード
📋 確認・一覧表示
- sftp_list.py - ファイル一覧表示(詳細情報付き)
🔧 管理・操作
- sftp_chmod.py - パーミッション変更
- sftp_delete.py - ファイル/ディレクトリの削除
🔍 その他
- find_remote_path.py - リモートパス探索
主要な使用例
1. デプロイ(アップロード)
# デフォルトパスにデプロイ
python sftp_deploy.py my_website
# 特定のパスにデプロイ
python sftp_deploy.py my_website /var/www/html
# テスト実行(Mock モード)
python sftp_deploy.py my_website --mock
2. ダウンロード(バックアップ)
# デフォルトパスからダウンロード
python sftp_download.py ./backup
# 特定のファイルをダウンロード
python sftp_download.py /var/www/html/config.php ./config_backup.php
# ディレクトリ全体をバックアップ
python sftp_download.py /var/www/html ./website_backup
3. ファイル一覧表示
# シンプルな一覧表示
python sftp_list.py
# 詳細表示(権限、サイズ、日時)
python sftp_list.py -l
# 再帰的に表示
python sftp_list.py -r
# 特定のディレクトリを詳細表示
python sftp_list.py -l /var/www/html
4. 権限変更
# ファイルを実行可能に
python sftp_chmod.py /var/www/html/script.sh 755
# ディレクトリの権限変更
python sftp_chmod.py /var/www/html/uploads 777
# 再帰的に権限変更
python sftp_chmod.py /var/www/html 755 -r
5. ディレクトリ作成
# 単一ディレクトリ作成
python sftp_mkdir.py /var/www/html/uploads
# ネストしたディレクトリ作成
python sftp_mkdir.py /var/www/html/app/data/cache
# 特定の権限で作成
python sftp_mkdir.py /var/www/html/logs -m 777
6. 削除
# デフォルトパスを削除(確認プロンプトあり)
python sftp_delete.py
# 特定のパスを削除
python sftp_delete.py /var/www/html/old_files
自動パーミッション設定(デプロイ時)
| ファイル/ディレクトリ | パーミッション | 説明 |
|---|---|---|
.cgi, .py, .pl, .sh | 755 | CGIスクリプト(実行権限) |
data/ ディレクトリ | 707 | データディレクトリ(書き込み権限) |
| その他のファイル | 644 | 標準ファイル |
| その他のディレクトリ | 755 | 標準ディレクトリ |
AIエージェント向けガイドライン
ユーザーの指示に応じた適切なツール選択
| ユーザーの指示例 | 使用するツール | 備考 |
|---|---|---|
| 「デプロイして」「アップロードして」 | sftp_deploy.py | デフォルトパスまたは指定パス |
| 「ファイルを確認して」「何があるか見て」 | sftp_list.py | -l オプションで詳細表示 |
| 「バックアップして」「ダウンロードして」 | sftp_download.py | ローカルに保存 |
| 「実行権限を付けて」「権限を変更して」 | sftp_chmod.py | 適切なモード指定 |
| 「ディレクトリを作って」 | sftp_mkdir.py | 親ディレクトリも自動作成 |
| 「削除して」「クリアして」 | sftp_delete.py | 確認プロンプトあり |
推奨ワークフロー
デプロイ前
sftp_list.py -lで現在の状態確認- 必要に応じて
sftp_download.pyでバックアップ sftp_deploy.pyでデプロイsftp_list.pyで結果確認
トラブルシューティング
sftp_list.py -lで権限確認sftp_chmod.pyで権限修正- 必要に応じて
sftp_download.pyでログ取得
重要な注意事項
⚠️ Pythonについて
- レンタルサーバーではPythonスクリプトは推奨されません
.pyファイルは実行されず、ダウンロードされる可能性があります- CGIモードは古く、非効率的です
- 推奨: HTML、PHP、JavaScriptを使用してください
✅ 推奨される技術スタック
- HTML - 静的サイト
- PHP - サーバーサイド処理(レンタルサーバーで標準サポート)
- JavaScript - クライアントサイド処理
📁 リモートパスの設定
.env の FTP_REMOTE_ROOT にデフォルトのデプロイ先を設定できます:
例(Xserver):
FTP_REMOTE_ROOT=./your_domain.com/public_html
例(一般的なレンタルサーバー):
FTP_REMOTE_ROOT=./public_html
FTP_REMOTE_ROOT=./www
FTP_REMOTE_ROOT=/var/www/html
セットアップ手順
1. 必須ファイル: .env
.env.example をコピーして .env を作成し、サーバー情報を設定:
# サーバー接続情報
FTP_HOST=your_server_host.com
FTP_USER=your_username
FTP_PORT=22
# 認証方式(どちらか一方を設定)
# パスワード認証の場合
FTP_PASS=your_password
# SSH鍵認証の場合
FTP_KEY_FILE=path/to/your_key.key
# その他の設定
FTP_TIMEOUT=30
FTP_REMOTE_ROOT=./public_html
2. 必須ライブラリのインストール
pip install -r requirements.txt
requirements.txt の内容:
paramiko- SFTP接続python-dotenv- 環境変数管理
3. SSH鍵ファイル(鍵認証の場合)
- SSH秘密鍵ファイルをプロジェクトルートに配置
- サーバーの管理画面からダウンロード可能(Xserver、さくらなど)
.envのFTP_KEY_FILEにファイル名を指定
トラブルシューティング
接続タイムアウト
- タイムアウト設定は30秒(
.envのFTP_TIMEOUTで変更可能) - ホストキーは自動的に受け入れられます(
AutoAddPolicy) - ファイアウォールやポート設定を確認
ファイルが表示されない
- デプロイ先パスが正しいか確認
- Webルートディレクトリに
index.htmlが存在するか確認 - サーバーのドキュメントルート設定を確認
権限エラー
- SSH鍵ファイルのパスが正しいか確認
.envの設定(ホスト、ユーザー名、ポート)を確認- パスワード認証と鍵認証が混在していないか確認
ポート番号
- 一般的なSSH/SFTPポート:
22 - Xserverなど一部のサーバー:
10022 - サーバーのドキュメントで確認してください
サーバー別設定例
Xserver
FTP_HOST=xs123456.xsrv.jp
FTP_USER=xs123456
FTP_PORT=10022
FTP_KEY_FILE=xs123456.key
FTP_REMOTE_ROOT=./your_domain.com/public_html
さくらインターネット
FTP_HOST=your_server.sakura.ne.jp
FTP_USER=your_username
FTP_PORT=22
FTP_PASS=your_password
FTP_REMOTE_ROOT=./www
ロリポップ
FTP_HOST=your_server.lolipop.jp
FTP_USER=your_username
FTP_PORT=22
FTP_PASS=your_password
FTP_REMOTE_ROOT=.
VPS(一般的な設定)
FTP_HOST=123.456.789.012
FTP_USER=root
FTP_PORT=22
FTP_KEY_FILE=server_key.pem
FTP_REMOTE_ROOT=/var/www/html
ツール一覧クイックリファレンス
| ツール | 機能 | 主なオプション |
|---|---|---|
| sftp_deploy.py | アップロード | --mock (テスト実行) |
| sftp_download.py | ダウンロード | - |
| sftp_list.py | 一覧表示 | -l (詳細), -r (再帰) |
| sftp_chmod.py | 権限変更 | -r (再帰) |
| sftp_mkdir.py | ディレクトリ作成 | -m (モード指定) |
| sftp_delete.py | 削除 | (確認プロンプトあり) |
What ships with it: 2 files
6.1 KB alongside SKILL.md
- DESIGN_DOCUMENT.md1.5 KB
- README.md4.6 KB