crontabのリダイレクトによってゼロバイトファイルが生成されるのはなぜですか?

crontabのリダイレクトによってゼロバイトファイルが生成されるのはなぜですか?

システム:ジュブント13.10

このcrontabエントリがある場合

*/5 * * * * cat /home/dbk/.bash_aliases &> /home/dbk/Desktop/junk

junkバイトサイズは0

走る

$ cat /home/dbk/.bash_aliases &> /home/dbk/Desktop/junk

適切なサイズと内容のファイルが提供されます。

ベストアンサー1

。をcron使用してタスクを実行することは 。sh&>stderrstdoutbashsh

shコマンドは次のとおりです。

cat /home/dbk/.bash_aliases &> /home/dbk/Desktop/junk

これは、2つのコマンドを別々に実行することを意味します。

  • cat /home/dbk/.bash_aliasesバックグラウンドで実行

    cat /home/dbk/.bash_aliases &

  • ジャンクファイルを切り取ります。

    > /home/dbk/Desktop/junk

したがって、次のbashコマンドを実行する必要がありますcrontab

*/5 * * * * bash -c "cat /home/dbk/.bash_aliases &> /home/dbk/Desktop/junk"

または、より移植性の高い方法を使用してください。

*/5 * * * * cat /home/dbk/.bash_aliases > /home/dbk/Desktop/junk 2>&1

おすすめ記事