lpコマンドはcronジョブとして実行されません(ログエントリがないため)。

lpコマンドはcronジョブとして実行されません(ログエントリがないため)。

このlpコマンドを定期的に実行する必要があります。

lp /Users/denniscook/Documents/PrinterManagement/UseInk.pdf 2>&1 >>/Users/denniscook/.cronlogs/runPrinter.log

runPrinter.zsh スクリプトには次のコマンドがあります。

#!/usr/bin/env zsh

cat >>/Users/denniscook/.cronlogs/runPrinter.log <<EOF

***************************
Enter Job `date`
EOF

lp /Users/denniscook/Documents/PrinterManagement/UseInk.pdf 2>&1 >>/Users/denniscook/.cronlogs/runPrinter.log

cat >> /Users/denniscook/.cronlogs/runPrinter.log <<EOF
Exit Job `date`

EOF

lpコマンドは、端末で直接実行されるか、端末からスクリプトとして実行されると(プリンタがログを印刷して更新することを意味します)、正しく実行されます。しかし、cronでコマンドやスクリプトを実行すると、どちらも機能しません。

crontabでは、以下のcrontabを使用してある項目をコメントアウトし、別の項目を使用して両方の方法を試しました。 1つ目はスクリプトを実行し、2つ目はコマンドを直接実行しようとします。

#-----------#
# cron jobs #
#-----------#
#06 11 * * * /Users/denniscook/.scripts/runPrinter.zsh
13 11 * * * lp /Users/denniscook/Documents/PrinterManagement/UseInk.pdf 2>&1 >>/Users/denniscook/.cronlogs/runPrinter.log

~                                                                                                                                       
~                                                                                                                                       

端末でスクリプトを実行して正常に動作すると、ログエントリは次のようになります。

***************************
Enter Job Sun Jan 29 11:07:26 HST 2023
request id is EPSON_WorkForce_845-1286 (1 file(s))
Exit Job Sun Jan 29 11:07:26 HST 2023

cronがスクリプトを実行すると、ログエントリは次のようになります(lp cmdの出力なし)。

***************************
Enter Job Sun Jan 29 12:15:00 HST 2023
Exit Job Sun Jan 29 12:15:00 HST 2023

cronがlpコマンドを直接実行すると、ログエントリはありません。

cronがジョブを実行するのと端末でジョブを実行することの違いは何ですか?私の研究は答えを見つけることができませんでした。

どんな助けでもくれてありがとう。

ベストアンサー1

問題は、cronプロセスにフルディスクアクセス権がないことです。

解決策:

  • [設定]> [セキュリティとプライバシー]に移動し、左側のリストから[フルディスクアクセス]を選択します。
  • 新しいアプリケーションを追加するには、プラスボタンをクリックしてください。
  • 直接入力モードに切り替えるには、ファイルブラウザにスラッシュを入力してください。パスを入力してください/usr/sbin/cron。 (ターミナルに「which cron」と入力して探してください)

または、cronの代わりにAutomatorを使用してください。 (新しいツールを学びたいのですが、これが面倒に聞こえたら…)

(この回答はコメントにあります。次の人が回答を得るためにすべてのコメントを読む必要がないように、ここに公式の答えとして投稿しました。最終的な解決策を共有してくれたgpaCookに感謝します。)

おすすめ記事