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

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

新規登録して質問してみよう
ただいま回答率
85.50%
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

解決済

4回答

1539閲覧

期限まであと3日です。というメールを自動的に期限の3日前に送れるプログラムを教えて欲しいです。

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/29 01:45

例えばMYSQLにある12月1日に完成させなくてはならないマスタを3日前になっても完成しないと忠告メールを自動送信するプログラムをshellで書きたいです。
ちなみに日にちの定数は.bash_profileで設定したいです。

ちなみにshellはcentos6.4です。

大変分かりづらいと思うのですが、分かる方ご回答お願いします。
特にshellでsqlのテーブルの日付を読み込むのと、profileの定数を読み込みたいです。

書いたshell script

sendmail.sh

/bin/sh

content=mysql -h 192.168.*.** -u my_user --password=**** --database=DB_name -e "select * from table_name where date_name between ADDDATE( CURRENT_DATE() , interval '3' DAY ) and ADDDATE( CURRENT_DATE() , interval '4' DAY )" 2>&1

echo "$content" | mail -s "Reminder" "hoge@example.jp"
~

.bash_profile

Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH

hoge=3

crontab -e

1 0 * * * * sh sendmail.sh

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

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

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

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

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

guest

回答4

0

作りの部分は皆様が答えてますので、そもそものところを私は記述させて貰います。

例えばMYSQLにある12月1日に完成させなくてはならないマスタを3日前になっても完成しないと

何をもって「完成」とするかの定義が必要かと思います。(回答者も困ります)
テーブルだけ作成しているだけでは完成では無く、項目定義の中身まで見ないと完成と見なせないのかなと思います。

目的がプロジェクトの進捗管理であれば、炎上するだけかなと思います。

投稿2017/11/29 03:21

gitya107

総合スコア706

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

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

0

シェルでやれることは限られちゃうので、phpなどwebベースでチェックしてメールするプログラムをつくり
cronで定期的にクローラを走らせるのがよいでしょう。

定期チェックがすきではないなら、タスクを登録時にatでチェッカを走らせるタイミングを
指定してしまうのでもいいですが、融通が効かないのであまりおすすめはできません

投稿2017/11/29 02:19

yambejp

総合スコア114583

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

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

0

自己解決

あああああああああああ

投稿2017/12/05 06:14

s_ayana

総合スコア35

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

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

yambejp

2017/12/05 06:15

どうかしましたか?
guest

0

特にshellでsqlのテーブルの日付を読み込むのと、

これは具体的に何が分からないのでしょうか?

profileの定数を読み込みたいです。

.bash_profilesourceする必要がありますが、cronから実行されて困るコードがないか見極めが必要です。

Bash

1・・・ 2source ~/.bash_profile 3let hogePlusOne=hoge+1 4 5content=`mysql -h 192.168.*.** -u my_user --password=**** --database=DB_name -e "select * from table_name where date_name between ADDDATE( CURRENT_DATE() , interval '$hoge' DAY ) and ADDDATE( CURRENT_DATE() , interval '$hogePlusOne' DAY )" 2>&1` 6・・・・

あと、前の質問にコメントしましたが、ソースコードの書き方説明のページをちゃんと読んで、ちゃんと書いてください。説明ページを読みましたか?何か分からない事がありましたか?

投稿2017/11/29 02:52

otn

総合スコア84423

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問