
以前の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