Unixがホストする静的Webサイトから特定の日にスクリプトを実行する必要がある


0

Unixホスティングサービスで実行している静的なWebサイトがあり、サイトのテーブルに書き込まれた(定期的に変更される)日付から計算された特定の日付にイベントをトリガーする必要があります。トリガーは、電子メール送信操作をオフに設定します。サイト内のスクリプトまたはホスティングプラットフォームからイベントをトリガーする方法はありますか?または、これを行うには商用プログラムに切り替える必要がありますか?(もしそうなら、どれ)?これについてのあなたの考えに感謝します。乾杯、デビッド


それは広すぎます。少なくとも例を挙げてください。つまり、何を何に追加するのか、何を話しているのかということです。「明日は40週間」ですか、それとも「次の金曜日」ですか?
hroptatyr 14年

回答:


0

基本的にあなたのオプションは(私自身のユースケースから)です:

  1. sleep(1)スクリプトを介して生成され、nohup(1)'d。秒または1秒未満の精度が必要なものに使用します。
  2. at(1)コマンドを使用してat-daemonで実行をスケジュールします(実行が必要ですatd

オプション1は相対時間を使用でき、どのUNIXでも動作します。これはsleep-script.sh次のとおりです。

#!/bin/sh

sleep "$@"
## dostuff
echo "DONE"

次に、スクリプトから:

...
nohup sleep-script.sh 1m 19s &
...

オプション2は、実行する必要がありますatd(絶対時間をサポートします)。

...
at 09:45 tomorrow <<EOF
## stuff i need done
echo "DONE"
EOF
...

を使用atqatrmて、コマンドのキューを表示したり、キューから特定のジョブを削除したりできるため、オプション2はより快適です。ただし、上記の構文では1分未満の精度はサポートされていません。


もう少し具体的な情報を提供します。電子メールを送信するスクリプトを実行する必要があります。スクリプトを実行する日付は、日付(年が経過するにつれて約3週間ごとに1回入力される)から4日を差し引いて計算されます。「日付4」に達すると、スクリプトがトリガーされ、電子メールが送信されます。私の問題は、Webサイト上の日付を含む静的テーブルから「日付4」を計算し、トリガーを作成する方法です。私のクエリは、「日付4」を計算する方法と、それが見つかったときに、その結​​果を使用して電子メールを送信することに重点を置いています。「日付4」の何時に送信されるかは重要ではありません。
DavidG 14年

こんにちは!答えてくれてありがとう。dateutilsは、私のWebサイトをホストしているUnixプラットフォームから実行できますか?つまり、ホスティングプラットフォームでコマンドラインにアクセスする機能はありますか?私が参照しているテーブルは、実際に表示されるテーブルであり、表示用に日付が入力されるWebページ上のhtmlテーブルです。mySQLデータベースなどにはありません。私はこれが非常に複雑になっていると思いますが、もしそれが私を助けるために取っている時間に非常に感謝していない場合。乾杯、デビッド
DavidG

ホスティングプロバイダーはわかりませんが、はい、パッケージをインストールするにはシェルアクセスが必要です。たとえば、phpのみを表示/使用できる場合は、php-solutionもありますが、私はphpの専門家ではありません。興味深いことに、スクリプトをどのように開始してからホスティングプラットフォームで開始するのですか?
hroptatyr 14年

0

私が質問を誤解したので、実際の日付計算を扱う別の答えがあります:

コマンドラインツールで使用できるように日付を抽出できる場合、たとえばdadd、dateutilsから次のような多くの可能性があります。

$ dadd 2014-01-27 -4
2014-01-23

または標準入力経由でも:

$ echo 2014-01-27 | dadd -4
2014-01-23

テーブルでsqlテーブルを意味する場合、たとえばmysqlでデータベースシステムの日付演算を使用できます。

SELECT DATE_ADD(STR_TO_DATE("2014-01-27", "%Y-%m-%d"), INTERVAL -4 DAY);
+------------------------------------------------------------------+
| DATE_ADD(STR_TO_DATE("2014-01-27", "%Y-%m-%d"), INTERVAL -4 DAY) |
+------------------------------------------------------------------+
| 2014-01-23                                                       |
+------------------------------------------------------------------+

コマンドラインからも実行して、値をなどのツールに渡すことができますat


0

答えてくれてありがとう。現時点では、ここで言及しているスクリプトは開始しません。それが現在の問題です。私が使用する別のスクリプトは、submttedフォームからの単純なトリガーです。それはそれほど複雑ではありませんでした。私は探し続ける必要があると思います。最高だよ、デビッド

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.