GNU/Linux >> Linux の 問題 >  >> Ubuntu

特定のディレクトリにSSHで接続しますか?

私は毎日多数の異なるサーバーにSSHで接続し、それらのいくつかはWebサイトのファイルシステム構造が異なります。サーバーを変更するたびに、本当に必要なファイルにアクセスする場所を特定する必要があります(~になりたいということはめったにないためです。 。

私はFabricファイルを使用してすべてのアクション(gitへのプッシュ、gitからプルするためのサーバーへの自動SSH、Webアプリケーションの再起動、依存関係の変更など)を自動化するので、必要なことも伝えられないのではないかと思いました。 fab sshを実行できるように、適切なディレクトリにSSHで接続します 通常のSSHセッションに参加し、適切な場所ですぐに作業を開始します。

ただし、これはファブリックに関するものではありません。無視してください。 Fabricはコマンドのバッチを実行しているだけです。私の議論はsshです 指図。それがFabricに実行するように指示するものです。

では、どうすればsshを入手できますか cdへ ログイン時に特定のディレクトリに移動しますか?

注:これはできません サーバーまたはユーザー全体のものである。一部のサーバーで1人のユーザーの下に複数のWebサイトがあるため、~/.bashrcに何かを貼り付けています 私にはうまくいきません。

承認された回答:

ログイン時に何かを実行できることはわかっていましたが、実行するとすぐに終了することはわかっていました。私が今覚えているのは、リモートサーバー上で好きなだけ実行できるということです。コマンドをつなげるだけです!

ssh [email protected] -t "cd /websites/website ; /bin/bash"

今、私はファブリックにそれを行うように指示することができ、私たちは離れています。シンプル。

ファブリックとは何の関係もないと言いましたが、上記に基づいたファブリックスクリプトの新しい部分もここにあります:

def ssh():
    ''' SSH into the remote server at the correct directory '''
    local('ssh -t -p%(port)s %(server)s "cd %(remote_dir)s ; /bin/bash"' % {
        'server': server_host,
        'port': server_port,
        'remote_dir': remote_dir,
    })

同じスクリプトをシンボリックリンクして、変数(server_hostserver_port およびremote_dir )サイトごとに変更します。

Fabricはアウトバウンド接続を処理できるため、次のことも実行できます。

def ssh():
    ''' SSH into the remote server at the correct directory '''
    run('cd %s ; /bin/bash' % remote_dir)

これは機能しますが、出力の前にFabricからの文字列が追加されます。これにより、プロンプトの長さが80文字を超えました。解決策はたくさんありますが、それは私には多すぎます🙂

関連:KDEの「コメント」機能に相当するUnity?
Ubuntu
  1. Ssh、Sudo、それからダウンロード?

  2. Ssh –サーバーにSSHで接続してKey_load_publicを取得しようとしています:そのようなファイルまたはディレクトリエラーはありませんか?

  3. DockerコンテナにSSHで接続する方法

  1. Gitリポジトリを特定のフォルダに複製する方法

  2. 権限なしでディレクトリに cd する

  3. サーバーに SSH 接続するときのデフォルト ディレクトリを変更する

  1. Ssh – Ssh / scp / sftpユーザーをディレクトリに制限しますか?

  2. SSHとホームディレクトリのアクセス許可?

  3. 特定のファイルを1つのファイルに連結しますか?