###前提・実現したいこと
vmstatコマンドをバックグラウンド実行し
結果をファイルに出力
その際中に他の処理を行い
メモリとかサーバーの動きを確認したいと思っています。
sshコマンドでインスタンスに入らずに
外からvmstatコマンドを実行し
結果をファイルに出力するところまでは上手く行ったのですが
それをバックグラウンドで実行しようとすると上手く行きません。
###発生している問題・エラーメッセージ
今のところ特にエラーメッセージは確認できていません。
ファイルの出力はされますが、空ファイルのままです。
そのファイルをサクラエディタで開くと以下のようなダイアログが開かれます。
書き込み禁止モードでロックできませんでした
###該当のソースコード
#(1) 結果が標準出力されます、入力状態には返ってきません ssh -o 'StrictHostKeyChecking no' -i "${KEYPEAR}" ec2-user@$eip sudo vmstat -n 1 | gawk '{ print strftime("%Y/%m/%d %H:%M:%S"), $0 } { fflush() }' #(2) 結果が$LOGFILE_PATHに出力されます、入力状態には返ってきません ssh -o 'StrictHostKeyChecking no' -i "${KEYPEAR}" ec2-user@$eip sudo vmstat -n 1 | gawk '{ print strftime("%Y/%m/%d %H:%M:%S"), $0 } { fflush() }' > $LOGFILE_PATH # (3) 問題のコマンド $LOGFILE_PATHのファイルは作られます、しかし出力はされません、入力状態にはなります ssh -o 'StrictHostKeyChecking no' -i "${KEYPEAR}" ec2-user@$eip sudo vmstat -n 1 | gawk '{ print strftime("%Y/%m/%d %H:%M:%S"), $0 } { fflush() }' > $LOGFILE_PATH &
###試したこと
lsコマンドの結果を出力などしてみましたが同じような結果となりました。
Dockerのコンテナに対しても同じようなことを試しており、
そちらでは上手く実行されました。
docker exec $CONTAINER_NAME sudo vmstat -n 1 | gawk '{ print strftime("%Y/%m/%d %H:%M:%S"), $0 } { fflush() }' > $LOGFILE_PATH &
###補足情報(言語/FW/ツール等のバージョンなど)
Windows7 DockerToolbox Quickstart Terminal から実行しています。
AWS EC2 AmazonLinux のインスタンスにアクセスしています。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。