さくらサーバーを利用しています。
下記の記事を参考に一定時間が経過したプロセスを削除するシェルスクリプトを作成しました。
https://ex1.m-yabe.com/archives/3490
#/bin/bash PID=$$ for i in `ps aux -ef | grep "ssh -f -N -L" | grep -v $PID | grep -v grep | awk '{print $2}'` do TIME=`ps -o lstart -p $i` if [ -n "$TIME" ]; then StartupTime=`date +%s -d "$TIME"` CurrentTime=`date +%s` ElapsedTime=`expr $CurrentTime - $StartupTime` else ElapsedTime=1 fi if [ $ElapsedTime -gt 600 ] ; then kill $i fi done
ターミナルからシェルスクリプトを実行すると下記のようなエラーが表示されます。
date: illegal time format usage: date [-jnu] [-d dst] [-r seconds] [-t west] [-v[+|-]val[ymwdHMS]] ... [-f fmt date | [[[[[cc]yy]mm]dd]HH]MM[.ss]] [+format] expr: syntax error [: -gt: unexpected operator date: illegal time format usage: date [-jnu] [-d dst] [-r seconds] [-t west] [-v[+|-]val[ymwdHMS]] ... [-f fmt date | [[[[[cc]yy]mm]dd]HH]MM[.ss]] [+format] expr: syntax error [: -gt: unexpected operator date: illegal time format usage: date [-jnu] [-d dst] [-r seconds] [-t west] [-v[+|-]val[ymwdHMS]] ... [-f fmt date | [[[[[cc]yy]mm]dd]HH]MM[.ss]] [+format] expr: syntax error [: -gt: unexpected operator date: illegal time format usage: date [-jnu] [-d dst] [-r seconds] [-t west] [-v[+|-]val[ymwdHMS]] ... [-f fmt date | [[[[[cc]yy]mm]dd]HH]MM[.ss]] [+format] expr: syntax error [: -gt: unexpected operator
試したこと
#/bin/bash PID=$$ for i in `ps aux -ef | grep "ssh -f -N -L" | grep -v $PID | grep -v grep | awk '{print $2}'` do TIME=`ps -o lstart -p $i` echo $TIME done
上記のコードでは正常に動いて下記ように始まった時間が得られます。
STARTED Mon Jun 15 05:58:15 2020 STARTED Mon Jun 15 06:02:37 2020 STARTED Mon Jun 15 06:02:38 2020 STARTED Mon Jun 15 06:16:49 2020
下記の記述の部分が怪しいと思うのですがどう直していいのか分からずお手上げです。
StartupTime=`date +%s -d "$TIME"`
分かる方ご教示いただけますと幸いです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/15 01:53
2020/06/15 02:18 編集
2020/06/15 03:09
2020/06/15 10:53