Unix & Linux

Linux、FreeBSDおよび他のUn * xのようなオペレーティングシステムのユーザーのためのQ&A


4
次の行に特定の一致が含まれていない場合にのみ、行を印刷します
完了しなかったログに記録されたアクティビティのログファイルを検索しようとしています。たとえば、「ID 1234のアクティビティを開始しています...」と記録し、成功した場合、次の行は「アクティビティ1234完了」になります。 対応する「完了」行が続かない「開始...」行を取得しようとしています。 ログファイルの例 Starting activity for ID 1234 ID 1234 completed successfully Starting activity for ID 3423 ID 3423 completed successfully Starting activity for ID 9876 ID 9876 completed successfully Starting activity for ID 99889 ID 99889 completed successfully Starting activity for ID 10011 ID 10011 completed successfully Starting …
12 grep  sed  awk 

3
Linuxでのmanページのローカライズ(Ubuntu)
別の言語でマニュアルページを出力するオプションはありますか?コンピューターの言語を完全に変更したくはありませんが、特定のマニュアルページのみを変更します。例えば $ man -English man Man is a manual program … $ man -Russian man Инструцтия для Unix, BSD и Linux. …
12 man  locale 

1
SSH、tmux、GnuPGエージェントのベストプラクティス
暗号化ソフトウェアをGnuPGに統合しようとしていますが、紛らわしい問題に直面しています。 私の主要なユニットはヘッドレスサーバーで、tmuxでのみ仕事をしています。Xセッションはありません。したがって、pinentry-cursesを使用するようにgpg-agentを構成しました。このスクリプトを使用して、ログイン時にssh-agentエミュレーションで呼び出されるようにgpg-agentを構成しました。 if pgrep -u "${USER}" gpg-agent >/dev/null 2>&1; then eval `cat $gnupginf` eval `cut -d= -f1 $gnupginf | xargs echo export` else eval `gpg-agent -s --enable-ssh-support --daemon` fi すでにsshキーをgpg-agentに追加しましたが、別のsshセッションを試行するとコマンドがハングします。 gpg-agentを終了して新しいログインシェルを作成すると、エージェントが正常に動作することを発見しました(pinentry-cursesを呼び出してからssh-agentのように動作します)。 ただし、別のログインシェルを作成して(たとえば、別のtmuxペインを開いて)sshを試みると、コマンドがハングし、最初にエージェントを起動したログインシェルのコンテンツ上にpinentry-cursesウィンドウが印刷されます。 さらに、最初にエージェントを起動したシェルを閉じた場合、pinentry-cursesが呼び出され、CPUをクリンプする無限ループが発生します。(既知のバグ、http://bugs.debian.org/cgi-bin/bugreport.cgi? bug = 559936を参照してください。) 本質的に、GnuPGエージェントがssh-agentと同じようにシームレスに動作するように、セットアップの変更点を知りたいと思います。助けてくれてありがとう!
12 ssh  tmux  gpg 

3
ネットワークが到達可能であることをコマンドラインから確認する方法は?
SuSEサーバーがブートプロセスを完了した後、自分にうなり声を送りたいです。私はこのメッセージを受け取りましたsocket_sendto(): unable to write to socket [101]: Network is unreachable in。 ネットワークに到達できるかどうかをコマンドラインから確認し、到達できない場合はどうすれば待機できますか?

1
inotifyは、書き込みの開始時または完了時に通知を起動しますか?
ext3 fs上の通常のファイルを介して通信する2つのプロセス、リーダーとライターを想像してください。Reader IN_MODIFYにはファイルのinotify ウォッチがあります。ライターは、1回のwrite()呼び出しでファイルに1000バイトを書き込みます。Readerはinotifyイベントを取得fstatし、ファイルを呼び出します。リーダーには何が見えますか? Readerがst_sizeファイルに対して少なくとも1000を取得するという保証はありますか?私の実験から、そうではないようです。 Readerが実際にread()1000バイトできるという保証はありますか? これは、真剣にI / Oバウンドボックスで発生しています。たとえばsar、約1秒の待機時間を示します。私の場合、リーダーはを呼び出す前にinotifyイベントを取得してから10秒待ってから、stat結果が小さすぎます。 私が期待していたのは、ファイルの準備が整うまでinotifyイベントが配信されないことでした。私が実際に起こっていると思うのwrite()は、ライターでの呼び出し中にinotifyイベントが発生し、データが準備ができたときにシステム上の他のプロセスで実際に利用できることです。この場合、10秒では十分ではありません。 私は、カーネルが実際に私が推測している方法を実装していることの確認を探しているだけだと思います。また、おそらく、この動作を変更するオプションがありますか? 最後に-この振る舞いを考えると、inotifyのポイントは何ですか?とにかく、イベントを取得した後、データが実際に利用可能になるまで、ファイル/ディレクトリをポーリングすることになります。それをずっとやっていて、inotifyを忘れることもあります。 *** 編集 ** * * さて、よくあることですが、私が実際にやっていることが理解できたので、私が見ている行動は実際に理にかなっています。^ _ ^ 私は実際に、ファイルが存在するディレクトリのIN_CREATEイベントに応答しています。したがって、実際には、ファイルの作成に応答してファイルをstat()しています。必ずしもIN_MODIFYイベントではなく、後で到着する可能性があります。 コードを変更して、IN_CREATEイベントを取得したら、ファイル自体でIN_MODIFYにサブスクライブし、IN_MODIFYイベントを取得するまで実際にファイルを読み取ろうとしないようにします。ファイルへの書き込みを見逃す可能性のある小さなウィンドウがあることを認識していますが、最悪の場合、最大秒数後にファイルが閉じられるため、これは私のアプリケーションでは受け入れられます。
12 linux  files  stat  inotify 

4
Gentooでパッケージを安全にアンインストールする
Gentooで特定のパッケージをアンインストールしたかったので、emergeのmanページを閲覧しました。私は--unmergeオプションを見つけました: 警告:このアクションは重要なパッケージを削除する可能性があります!一致するすべてのパッケージを削除します。これは依存関係のチェックを行わないため、システムの適切な動作に必要なパッケージを削除する場合があります。その引数は、アトムまたはebuildです。--unmergeの依存関係を認識するバージョンの 場合は、-- depcleanまたは--pruneを使用します。 ただし、システムにインストールされている他のパッケージにアンインストールするパッケージが必要かどうかをemergeで確認したいと思います。その機能を提供しない--depcleanで--pruneください: --depclean 依存関係としてインストールされたが、もはや必要ではないパッケージを削除します --prune 「システムからインストールされているパッケージの最高バージョンを除くすべてを削除します」 の依存関係チェックバージョンはありません--unmergeか?

2
行数に応じて「cat」または「less」を使用する方法は?
ファイルのコンテンツを見るとき、画面サイズを超えるcatファイルを自動的に短くしたいと思いますless。で何かを使用することもできますwc -lが、ウィンドウサイズ/現在の利用可能な行数も考慮するより良い方法はありますか?
12 less  cat 

3
大きなtarballから特定の数のファイルのみを展開する
リモートシステムからローカルシステムへのFTP転送に忙しい大きなtarballがあります。 転送の実行中にそれらのファイルの処理を開始できるように、一度に50個のファイルを展開できるかどうかを知りたいと思います。
12 tar 


1
xサーバーとLinuxカーネルの両方にドライバーが必要なのはなぜですか?
Linuxカーネル用とX用の2つのドライバーセットが必要な理由を誰かが説明できますか? デバイスドライバーはカーネル内にあることを理解していますが、xserver内のデバイスドライバーの役割は何ですか? waylandでは、このようなドライバーを実行する必要がありますか?

3
スチールタイム(st)を監視するためのツール
私たちは仮想の「専用」サーバーで実行しています。これは、理論上、サーバー上にいるのは私たちだけであることを意味するはずです。実際には…。 マシンを殺しているように見えますが、「スチール時間」は71%です。 負荷に関する統計情報を取得していますが、この統計情報がグラフに表示されないことに失望しました。これを監視し、支援できるツールはありますか? 追加情報: 4つのコア、モデルを実行しています: # grep "model name" /proc/cpuinfo | sort -u model name : Intel(R) Core(TM)2 Duo CPU E7500 @ 2.93GHz

3
多変数forループ
forループ内に複数の変数(整数だけでなく)を指定する方法はありますbashか?作業する必要がある任意のテキストを含む2つのファイルがある場合があります。 機能的に必要なのは次のようなものです: for i in $(cat file1) and j in $(cat file2); do command $i $j; done 何か案は?

2
Linuxの「perf record」をlibcおよびlibstdc ++シンボルに対して機能させる方法は?
私が使用しているperf record -gプログラムをプロファイルするのx86-64 Linux上で。libcまたはlibstdc ++のいくつかのシンボルは0、親として:__GI___strcmp_ssse3(libc)およびstrcmp@plt(libstdc ++)などです。(デバッガでこれらのシンボルを実際にブレークして、バックトレースを取得できます。) これらの関数の主要な呼び出し元と、それらが記録されない理由を知りたいです。これは、libcとlibstdc ++にx86_64のフレームポインターがないためですか?そして、実際には、これを回避する方法はありますか?
12 glibc  profiling  perf 

1
システムが応答しなくなるのはなぜですか?
dot大きすぎる入力ファイルを使用して(有向グラフを描画するプログラム)を実行しただけで、妥当な時間内にレンダリングできませんでした。 システム全体が凍結しました。殺すためにCtrl+ Alt+でテキストコンソールにたどり着くことができましたが、数分かかりました。F1dot システムがこのようなことを許可するのはなぜですか?dotシステムの99%などの重要ではないプログラムを提供し、応答性を維持するために残りの1%を使用するのはなぜですか?
12 scheduling 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.