単純な文を使用して、bashスクリプトの標準出力とエラー出力をファイルに簡単にリダイレクトし、exec
出力をコンソールに削除できます。
exec &>>/var/log/backup.log
しかし、どのようにexec
2つのファイルに書き、最初のファイルに追加し、2番目のファイルを上書きしますか?たぶんtee
魔法を使う必要があるかもしれません。コンソールを無音にする方法も見つける必要があります。
その理由は私のバックアップスクリプトによるものです。最新のバックアップからのイベントをプライマリログに追加し、これらのイベントを各バックアップセッションごとに再作成する必要がある現在のバックアップログにのみ記録したい(前の内容を消去)。
ベストアンサー1
可能で、プロセスの交換が必要です。tee
残りを呼び出して上書きされたファイルにリダイレクトするサブプロセスにストリームをリダイレクトします。
exec &> >(tee -a backup.log > overwritten.log)
スクリプトが終了するか、別のリダイレクトが設定されるまでストリームが開いているため、スクリプト全体でファイルが一度だけ上書きされます。