[解決済み】stdinがターミナルではないため、擬似ターミナルが割り当てられない
2022-01-09 22:24:51
質問
リモートサーバーにディレクトリを作成し、ローカルファイルをリモートサーバーにscpする機能を実装する必要がありますが、私はこれを行うためにシェルスクリプトを使用しています、コードは次のとおりです。
ssh -t user@server<<EOT
DEP_ROOT='/home/matthewr/releases'
datestamp=$(date +%Y%m%d%H%M%S)
REL_DIR=$DEP_ROOT"/"$datestamp
if [ ! -d "$DEP_ROOT" ]; then
echo "creating the root directory"
mkdir $DEP_ROOT
fi
mkdir $REL_DIR
exit
EOT
scp ./dir1 user@server:$REL_DIR
scp ./dir2 user@server:$REL_DIR
スクリプトを実行すると、エラーが発生しました。
Pseudo-terminal will not be allocated because stdin is not a terminal.
そして、スクリプトは永遠にハングアップするだけです。
私の公開鍵はサーバー上で信頼されており、スクリプトの外ですべてのコマンドを問題なく実行することができます。
どのように解決するのですか?
試す
ssh -t -t
(または
ssh -tt
を使うことで、stdin がターミナルでない場合でも擬似的に tty を確保することができます。
こちらもご覧ください。 bashスクリプトで実行されたSSHセッションを終了させる
sshのmanpageより。
-T Disable pseudo-tty allocation.
-t Force pseudo-tty allocation. This can be used to execute arbitrary
screen-based programs on a remote machine, which can be very useful,
e.g. when implementing menu services. Multiple -t options force tty
allocation, even if ssh has no local tty.
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン