Cronを使用せずにジョブをスケジュールするには、Linuxスクリプトが必要です。

Cronを使用せずにジョブをスケジュールするには、Linuxスクリプトが必要です。

以前のRedhat Linuxオペレーティングシステムでは、Cronでタスクを実行するのは難しいですが、私のユーザーアカウント/コマンドラインではうまく動作します。

私のユーザーとは異なるシェルを使用しているCronに関連しているようです。

私のユーザーアカウントを使用してバックグラウンドでスクリプトを実行し、特定の時間に1つ以上のタスクをスケジュールする方法はありますか?

クローナ入場:

00      08      *       *       *       DBPATH='/usr2/customer/actr/data/409';export DBPATH;/usr2/customer/actr/systems/adsnew/scripts/rb3pamrx8.sh 'lp -d macaplp01 -s -oL' 'Y' '409' 'today+1' '1' 'DEV'

答え1

コードをスクリプトに入れてスクリプトをスケジュールします。単一のコマンドより長い場合、または「クール」アイテムを使用している場合は、スクリプトに入れてください。

#!/bin/sh

DBPATH='/usr2/customer/actr/data/409'
export DBPATH

/usr2/customer/actr/systems/adsnew/scripts/rb3pamrx8.sh \
    'lp -d macaplp01 -s -oL' \
    'Y' '409' 'today+1' \
    '1' 'DEV'

これはより読みやすく、crontabのどこかに隠されていないため、crontabエントリを変更せずに変更できます。また、1行ですべての操作を実行せずに、必要に応じて制御構造とロジックを追加できます。

つまり、タイムラインからジョブ(スクリプト)を切り離します。

crontabエントリは次のようになります。

0 8 * * * /usr2/customer/actr/cronscripts/theprintjob.sh

または他のもの。

答え2

以下は私のユーザーのcrontabの例です。

SHELL=/usr/local/bin/bash
PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/local/noc
LOGNAME=jessebutryn
USER=jessebutryn
HOME=/Users/jessebutryn
#
0 12 * * * /Users/jessebutryn/Documents/scripts/shell/tools/mantasync.sh
0,15,30,45 * * * * /Users/jessebutryn/Documents/scripts/shell/tools/ntoolssync.sh

完全なcronタブの変数を設定したくないが、環境で実行する必要があるタスクがある場合は、通常、次のようにbash設定ファイルを直接インポートできます。

0 2,6,10,14,18,22 * * * . /root/.bash_profile ; /opt/local/bin/fraudchk

関連情報