Quantcast
Viewing all articles
Browse latest Browse all 8691

【Macでcrontabを動かすためにやったこと】

cronせっかく勉強したのに、Macだとlaunchd使いましょうとかいわれてなんやそれってなってます。


フルディスクアクセスにターミナル.appと、crontabを追加する。

1,フルディスクアクセスにcrontabを追加
「システム環境設定」→「セキュリティとプライバシ」→「フルディスクアクセス」で鍵を解除 →「+」→「command + shift + G」で /usr/bin/cron/ を入力して開く → crontabを選択して開く

2,フルディスクアクセスにターミナル.appを追加
1と同じように、アプリケーション/ユーティリティ/を開く → ターミナル.appを選択して追加

ここまで行えば、cronを実行できるようになる


crontabにcron文を記述する

cronの操作
crontab -e でvimなどで開ける
crontab -l で記入したcron文一覧を見れる

cron文
毎日10時10分にnode ~といったnode.jsファイルを自動実行したい場合

10 10 *** /Users/~/.nodebrew/current/bin/node /Users/~/programming/Nodejs/sample.js>>error.txt

#分 時 日 月 曜日 nodeコマンドのフルパス 実行したいjsファイルのフルパス

・nodeコマンドのフルパスはwhich nodeとterminalに入力するだけ
・>>error.txtとすると、jsならconsole.log()での出力内容を取得したtextファイルを作成できる。

これで指定した時間に指定したファイルを実行できる


cronを実際に動かしてみてハマったときに確認したこと。
・cronに設定したPATHは合っているか
・logは出力できているか
・logはどこまで出力されているか→原因の場所特定

→結果 .envファイルを読み込むdotenvモジュールのファイルパスが相対パスになっていたことが問題だった。

require('dotenv').config()//動かなかったコードrequire('dotenv').config({path:'/Users/~/JS/Nodejs/scraping/.env'})

cronを止める
cronを一時的に止めたい場合は、#でコメントアウトすればいい


Viewing all articles
Browse latest Browse all 8691

Trending Articles