2017-04-12 8 views
-1

私は請求書作成アプリケーションを実行するサーバーを持っており、請求書と請求書を生成し、毎月登録ユーザーに送信します。 30日ごとにこれを手動で実行する必要はありません。 私は永遠に、サーバー上で実行され、バックグラウンドでスリープコマンドの実行を作り、このスクリプトを保つために 睡眠30Dスリープコマンドを使用して1か月間遅らせる

しかし、それは良いようにsleepコマンドを使用して、このプロセスを自動化したいですか?

OS:CentOS 7 目的:OpenStackマルチノードクラウドを実行しています。

+0

どのようなOSですか?この仕事をする正しいツールは、Linuxのcrontabのようなタスクマネージャーのようです。あなたの質問を更新したいかもしれません。 –

+1

"このスクリプトをサーバー上で永続的に実行し続けることは良いことです" - おそらくそうではありません.30dが期限切れになる前にサーバーを再起動する可能性があります。 Google for "task scheduler" – Joe

+0

私はCentOS 7を使用してOpenStackクラウドを実行しています。 –

答えて

0

スクリプトまたはアプリケーションをパラメータを使用して月の最初の日に実行するには、crontabを使用する必要があります。

管理用ウェブサイトにcrontabのGUIがあるかどうかを確認してください。 サーバーのシェルにアクセスする必要があり、コマンドを実行する必要があります。crontab -e

スケジュールされたタスクを記述できるテキストエディタが開きます。

あなたは、各列に記述する必要がwhay見るために先頭にこのヘッダを貼り付けます。

# m  h dom mon dow command 
# *  * * * * Command to be executed 
# -  - - - - 
# |  | | | | 
# |  | | | +----- Day of week (0-7) 
# |  | | +------- Month (1 - 12) 
# |  | +--------- Day of month (1 - 31) 
# |  +----------- Hour (0 - 23) 
# +------------- Min (0 - 59) 

In your case you should write 
0 0 1 * * command_to_run 

最初の0、それはそれがだ時間
1だ分間秒0
ですあなたはそれを毎月1日を実行したいと言う
次*それが実行されます言うすべての月
*それはそれはです週のどの日についてずに走ったことになると言う最後の

最後のコマンドを実行する必要があります。

+0

私はcrontabsを使用する方法を考え出しました。しかし、私は目的地を変更したい。現在と同じように、私は電子メールとしてルートに郵送するには、私がcronジョブを使って実行するすべてのコマンドを実行します。私はそれを望んでいない。私はそれを特定のパスまたは任意のディレクトリで実行したいので、私が望むパスに出力が存在するようにしたい。 –

+0

シェルスクリプトを作成します。そのシェルスクリプトでパスを変更する必要がある 'cd'コマンドを追加し、その後に 'cd'を実行してアプリケーションをneedパラメータで実行します。 crontabログの宛先メールを変更するには、crontabの前にcrontabに追加してください。MAILTO = [email protected] – NetVicious

関連する問題