crontabを使用してgoバイナリを実行するには?

crontabを使用してgoバイナリを実行するには?

Goスクリプトでバイナリファイルを作成し、crontabを使用して実行する必要があります。バイナリは問題なく実行され、コマンドラインから手動で実行されます。 WSLでUbuntuを使用しています。 crontabが正常に保存されたがスクリプトが実行されていないようです。

スケジュールされたタスクは次のとおりです。

*/1 01 * * * /home/tgr/test-bin/main/main -download > /dev/null 2>&1
  • 私はこれを午前1時にテストしたので、crontabの時間フィールドは01にあります。

「-download」フラグを使用してスクリプトを実行すると、YAML構成ファイルを使用してバケットからいくつかのファイルをダウンロードし、解凍、コピー、ファイル構造の確認などのいくつかの補助操作を実行します。また、ログファイルを生成します。

クローンサービスを開始しました

sudo service cron start

いくつかの提案をすることができますか?

ベストアンサー1

cronジョブは、またはを介してat実行されるか、batchデスクトップの同じランタイム環境では実行されません。変更やその他の環境変数の設定は、ジョブにPATH自動的に伝播されませんcron。たとえば、no$DISPLAYなので、GUIプログラムには特別な処理(読み取りman xhost)が必要です。

cron環境変数は、すべてのジョブの読み取りファイルで設定できます。crontabman 5 crontab

echo "=== set ===";set;echo "=== env ===";env | sort;echo "=== alias ===";alias各環境の結果を確認してください。

その行はデフォルトで解釈されるため、構文はcommandそれよりも単純なので、環境を設定した後に必要なプログラムを呼び出すスクリプト(実行可能、インストール、開始)を呼び出すことをお勧めします。crontab/bin/sh/bin/bashcommandbash#!/bin/bash

おすすめ記事