iノード番号ではなくファイル名を減らすにはどうすればよいですか?


11

再起動時にログファイルをローテーションするソフトウェアがあります。ただし、開発中は何度も再起動しているので、随時最新のログファイルを監視したい。

で正常に開始lessless program.log、末尾にShift+ fを押すと、ログファイルがローテーションされるときに、古いログファイルの監視が続行されます。これは、iノード番号が同じままであり、lessそのiノードへのオープンファイルハンドルがあるためと考えられます。

現在呼び出されているログファイルの最新のアクティビティを監視することはできますprogram.logか?

具体的には、Sun OSに取り組んでいるため、そこで機能するソリューションが理想的です。


多分tail -F program.log | less機能します
sendmoreinfo 2013年

tail -f program.log これを試しましたか?
Rahul Patil、2013年

回答:


17

less --follow-nameバージョンでlessサポートされている場合に使用します。このオプションはバージョン416で導入されました。


素晴らしい返事。Solaris 10とSolaris 11はどちらも使用するバージョン436が少ないため、このオプションは実際に使用できます。
unixhacker2010 2013

5

このlessオプション--follow-nameはソリューションの一部にすぎません。
を置き換えるにはtail -F、別の引数が必要です。

less --follow-name +F file.log

オプションだけでless --follow-name file.logは、実際にはファイルの更新に続いて開始されません。を押してフォローモードに入る必要がありますShiftF
(モードを終了して、ナビゲートしControlCます。)

ファイルを--follow-name 追跡する代わりに、less の動作変更します。follow 内
のコマンドキーは、ファイル記述子ではなくファイル名に基づいて作成されます。 ShiftFless

また、lessフォローモードで起動する通常のオプションはありません。
ただし、コマンドラインを使用して、キーストロークの前にを付けることにより、起動後に実行するキーストロークを指定でき+ます。
修飾子オプションをと組み合わせると+Fless実際には(変更された)フォローモードで開始されます。

+Fplainと同等のものを単独で使用しますtail -f

less +F file.log

1

私はちょうどこのU&L Q&Aで答えが見つかったというタイトル:どのように行うにはtail -f、ログのファイルを回転させますか?

使用tail

(システムにGNUテールをインストールするオプションがある場合)

tail -F program.log

尾のmanページ

   -f,      --follow[={name|descriptor}]
            output appended data as the file grows; -f, 
            --follow, and --follow=descriptor are equivalent

   -F       same as --follow=name --retry

   --retry  keep  trying  to  open  a  file even when it is or becomes
            inaccessible; useful when following by name, i.e., with
            --follow=name

キーは--retryスイッチです。これは、tail名前でファイルの追跡を再試行し続けるようにコマンドに指示します。-FスイッチはAの両方ん-f--retry

を使用して less

@StephaneChazelaがコメントで指摘したように、以下は機能しません。

tail -F program.log | less

あなたが持っている唯一の他のオプションは、それが--follow-nameスイッチとlessファイルを直接サポートしていると仮定して、lessを直接使用tailすることです。

less --follow-name program.log

私はときどきSun OSを強く嫌います...
Alex Chamberlain

私が同意するのは、私が何年も働いていたからです。それは、一部のアプリでは、ツールが10年前のものだということを否定しています。意味がありません。このサイトは、Solarisで正気を保つために非常に貴重でした。sunfreeware.com
slm

もっと健全性が必要な場合は、pkgsrc.orgをチェックしてください:)
sendmoreinfo 2013年

それはうまくいきません。なぜならlessあなたは「G」PR「F」を行うとハングします。「Ctrl-C」を実行すると中断できますが、その後、尻尾を殺します。その後、Ctrl-Cで尾を免疫できますが、それでもまだあまり使用できません。
ステファンChazelas

GNUテールに関して:Solarisホストで使用できるツールについては、こちらをご覧ください。(実際には、GNUテールはデフォルトでSolaris 11にあります)。Solarisのシステム管理者は、インストールを非常に必要最低限​​のインストールのままにしておくため、ユーザーにとってさらに困難になります。一方、SolarisのGNUツールは最近、Oracleから直接入手できる場合や、場合によってはデフォルトのインストールの一部として入手できる場合があります。インストールに含めない理由はありません。「非公式」のリポジトリにアクセスする理由はありません。リンクを参照してください。
unixhacker2010 2013
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.