crontabでモジュールを使用する方法

crontabでモジュールを使用する方法

「利用可能なモジュール」を入力すると、利用可能なモジュール情報が表示されます。

--------------------------------- /tool/applic/module-3.2.10/Modules/3.2.10/modulefiles ----------------------------
Applic/Abaqus_2016_sp1       Applic/FDTD-8.15.716-1       Applic/Raphael_2006.12-SP2   Applic/Synopsys_sx_C2009-sp1

この情報を1分ごとに保存したいと思います。使用して予約されたこと

だから「crontab -e」を使ってこう編集します。

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
*/1 * * * * module add something
*/1 * * * * module list >> croninfo.txt     
*/1 * * * * module available >> croninfo.txt

しかし、croninfo.txt空いた。 「モジュール」が動作しないようです。

モジュールを追加できるようにモジュールを操作するにはどうすればよいですか?

答え1

これには2つの明確な可能性があります。

cronまず、そのコマンドが実行される環境は、通常、ログインセッションで開始された対話型シェルから取得できる環境とは大きく異なることに注意してください。仕事を追加してこの問題を解決したようですが、PATH覚えておくことが重要です。これに対する補足として、cron はコマンドを実行し、現在の作業ディレクトリは所有者ユーザのホームディレクトリに設定されます。したがって、必要なものでない場合は、適切に調整する必要があります。

第二に、同じ時間指定子を持つコマンドは未定義の順序で実行されます。書くとき

*/1 * * * * module add something
*/1 * * * * module list >> croninfo.txt
*/1 * * * * module available >> croninfo.txt

順次実行されると思うかもしれませんが、実際にはcron は現在、好きな順番で自由に実行できます。各コマンドの起動と実行にかかる時間に応じて、複数の異なるコマンドを同時に実行できます。

一連のコマンドを順次実行するには最善のアプローチは、コマンドを正しい順序で実行する単純なスクリプトを作成し、cronでそのスクリプトを実行することです。

これにより、同様の方法を使用して#!/bin/bash -xスクリプトの実行に関する詳細を得ることができ、問題を正確に見つけるのに役立ちます。

/1ところで、指定子は必要なく、*通常の*/1cron実装でも同じです。指定子は、1以外の値が必要な場合に/n便利です。nたとえば、3分ごとにコマンドを実行します(*/3最初の指定子フィールドで)。

関連情報