bash
コマンドを使用してMySQLからユーザーアカウントの詳細を取得するコマンドがあります。
select creationdate from users;
これは私に次のような結果を与えます
Name Account Creation Date Mobile
User1 2015-06-18 16:00:00 29292922
User2 2015-06-18 16:06:00 56896906
User2 2015-06-18 16:08:00 16842146
今私が望むのは、各ユーザーを現在の日付時刻と一致させ、ACCOUNT
作成CREATION
日DATE
が5分未満の場合は、同様のアカウントをリストする必要があります。
New accounts are user2 and user3
そんなこと。これにより、アカウントが登録されたことを知らせるテキストメッセージを送信できるようになります。
答え1
mysql
あなたのためにこれを行うことができるはずです。ただし、出力を後処理する必要がある場合は、次のようにします。
perl -MTime::Piece -lne '
if (/^(\S+)\s+(\d{4}\S+\s+\S+)/ and
$t = Time::Piece->strptime($2, "%Y-%m-%d %T") and
time - $t->epoch <= 5*60
) {print $1}'
ユーザー名に空白文字を含めることはできません。
答え2
GNU awkを使用すると、次のことができます。
awk '
{ time = $2 " " $3; gsub(/[-:]/, " ", time); t = mktime(time) }
(systime() - t) <= 300 {print $1}
'
答え3
このスレッドを更新するのを忘れました。その日、以下を使って解決策を見つけました。
mysql -u$SQLUSER -p$SQLPASS -e "use $DB; select creationdate,login,package,expirydate,mobile from users WHERE creationdate >= NOW() - INTERVAL 5 MINUTE;"