[解決済み] stdinはターミナルではないので、疑似ターミナルは割り当てられません。
2022-03-08 16:02:14
質問
私は、リモートサーバー上にいくつかのディレクトリを作成し、次に私のローカルマシンからリモート上にファイルをコピーするために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.
関連
-
[解決済み】CentOSのエラー - sudo: effective uid is not 0, is sudo installed setuid root?
-
[解決済み】Linuxのdocker-composeでパーミッションが拒否されました【終了】。
-
[解決済み】画面 ターミナル '/dev/pts/0' を開くことができない - 確認してください。
-
[解決済み】Postgresql -bash: psql: コマンドが見つかりませんでした。
-
[解決済み】スラッシュとrsyncコマンド
-
[解決済み] ユーザーデータスクリプトは私のカスタムAMIでは動作しませんが、標準のAmazon linuxでは動作しています。
-
[解決済み] vimdiff の出力ファイルにおける +-- の意味は何ですか?それをオフにする方法は?
-
[解決済み] readChar(con, 5L, useBytes = TRUE)でのエラー:接続を開くことができません。
-
[解決済み] Linux の設定 -- ssmtp: smtp.gmail.com:587 を開くことができません。
-
[解決済み] Grep ディレクトリ内のすべてのファイルを文字列1および文字列2で検索します。
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】 -bash: fork: メモリを確保できない
-
[解決済み] sysrootとは何ですか、そしてどのように作成しますか?
-
[解決済み] "デバイスに不適切なioctl"
-
[解決済み] フォルダが存在するにもかかわらず、マウントポイントが存在しない。手動でマウントできる
-
[解決済み] モスキートクライアントの取得が接続を拒否
-
[解決済み] readChar(con, 5L, useBytes = TRUE)でのエラー:接続を開くことができません。
-
[解決済み] SIGRTMAXとSIGRTMINの使い方は?
-
[解決済み] bashの「#$」はどういう意味ですか?
-
[解決済み] Vimを保存して終了するにはどうしたらいいですか?
-
[解決済み] Bashでsshして複数のコマンドを実行する最もクリーンな方法は何ですか?