📁

1時間に1回程度でランダムでサイトへアクセスするcron設定をワンライナーで

2016/10/27に公開

cron って何て呼ぶ派?

「クーロン」ですかね。

注意と警告

  • 実行結果については自己責任で
  • アクセス先や頻度によっては「攻撃」とみなされて、不正アクセスなどで逮捕されるので注意
  • あくまで「1時間に1回程度」なので、運が悪いといつまでも実行されないし、良すぎるとたくさん実行される
  • アクセス結果は取得するが、アクセスしなかった場合のログは残らない

用途

ツイッターのBOT(発言、フォロー)など、定期的に実行したいが、ある程度自然な感じを出したい場合。

こんな感じ

02-58/7 * * * * /usr/bin/test $( expr $RANDOM \% 6 ) -eq 1 && curl -sf http://test.com/ | head -n 1 >> /home/user/cron.access.log

大意

毎時2〜58分の間に7分おきに以下のものを実行する ( 9, 16, 23, 30, 37, 44, 51, 58 )。
0〜6 の数字をランダムに取得し、1と等しければ、 http://test.com にアクセスする。
アクセスした場合、取得された結果 (大抵は HTML) の先頭1行を /home/user/cron.access.log というファイルに出力(2回目以降は下に改行して追記)

カスタマイズのポイント

  • 02-58/7 : 2〜58分の間7分ごとに起動されるので、ここで頻度を調整する
  • 6 : この数字を大きくすることで頻度が下がり、小さくすることで頻度が上がる (0は禁止)
  • http://test.com : アクセス先の URL なので、任意に変更する
  • head -n 1 : 先頭の1行という意味なので、1を他の数字にしたり、head を tail にしたり
  • /home/user/cron.access.log : 結果を保存するファイルなので、任意に変更する

ファイル出力が不要な場合は | head -n 1 >> /home/user/cron.access.log> /dev/null に変更する

備考

細かいことはグーグル先生や本物のシェルスクリプターさんに聞いてください。
ただの自分用のメモなので、ツッコミどころはあるかと思います。

Discussion