質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

date

dateは、date型や日付に関する関数や処理についてのタグです

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

解決済

1回答

282閲覧

MYSQLのデータををshellscriptで読み込みたい

s_ayana

総合スコア35

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

date

dateは、date型や日付に関する関数や処理についてのタグです

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

0グッド

0クリップ

投稿2017/11/30 06:35

編集2017/11/30 06:53

具体的に記述します。
現在
テーブル名:sample_user
user_id password cility_id kensh_div lock_flg crt_datetime mcuser_id del_flg
1 NULL NULL NULL NULL NULL NULL NULL
2 NULL NULL NULL 1 2017-12-05 00:00:00 NULL NULL

のテーブルがあります

それからshellでは

!/bin/sh

date1=5
datetime=2017-12-05

tabledate=date --date "$datetime $date1 days ago" +%Y-%m-%d
content=. ./mysql.sh

if [ date +%Y-%m-%d = $tabledate ]; then
echo "www" | mail -s "Reminder" "sam@ooooo.jp"
echo "sendmail"
fi

と記述しました。

これで指定の日にちの5日前にメールを送るプログラム自体はうまくいきました。
ただこれだともしsqlのcrt_datetimeカラムの2017-12-05の日にちが変わったときにshellのdatetime=2017-12-05もいちいち変えなくてはなりません。
そこでdatetime=(crt_datetimeの2017-12-05)としたいのですが、sqlの日付フィールドをshellで読み込んで、datetime変数に代入することは可能でしょうか。
もしくはsqlの2017-12-05日付が変わったら、shellのdatetime=2017-12-05も自動的に変わる方法があれば教えていただきたいです。
一応 "mysql -h192.168.. -u tst_user -p**** sample"でshellからsqlはつなげています。
mysqlの日付フィールドをshellで読み込む方法お願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

実行日の5日後のデータがDBにあればメール送信といった感じにするとわかりやすのでは。
以下「$tabledate」に5日後の日付が入るので、その変数をsqlに渡してデータがれば送信といった感じの流れでいかがでしょう。

sh

1!/bin/sh 2 3// n日後の指定 4date1=5 5 6// n日後の日付を生成 7tabledate=date --date "$date1 days" +%Y-%m-%d 8echo $tabledate 9

投稿2017/12/05 04:05

mayoi_maimai

総合スコア1583

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問