バッチを開発する際、既存のcrontabの設定を眺めていると 0 * * * * sh hogehoge.sh > /dev/null 2>&1 という記述が目に入ることがあると思います。シェルスクリプトを実行するところまでは理解しやすいと思いますが、少し難解なのが > /dev/null 2>&1 の部分です。ざっくり解説しますとcronによるコマンドの定期実行時、当該コマンドによるエラーやecho等の出力を一切出さないようにする設定ですが、その具体的な仕組みを私もよく忘れやすいため備忘録を兼ねて解説を残します。 リダイレクトを理解するまずは sh hogehoge.sh > /dev/null 2>&1 の>についてです。これはリダイレクトといい、別の場所に出力内容を渡すことができる指定です。たとえばhoge.shというシェルスクリプトに #!/bin/bash echo 'aaa'
![[詳解] crontabに頻出する > /dev/null 2>&1 の意味](https://cdn-ak-scissors.b.st-hatena.com/image/square/9528b0f4722eadcf459be6d16f35f2fa64954991/height=288;version=1;width=512/https%3A%2F%2Fmasyus.work%2F__og-image__%2Fstatic%2Farticles%2Fcrontab-dev-null-21%2Fog.png)