📁
1時間に1回程度でランダムでサイトへアクセスするcron設定をワンライナーで
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