Unix & Linux

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


2
ループでffmpegを使用する場合の奇妙なエラー
検索の結果をループし、いくつかのFLVファイルのffmpegエンコードを実行するbashスクリプトがあります。スクリプトが実行されている間、ffmpegの出力は中断されているようで、以下のような奇妙なエラーを出力しています。ここで何が起こっているのか分かりません。誰かが私を正しい方向に向けることができますか? ループが本来あるべきではないときにまだ実行されており、ffmpegプロセスを中断しているようです。 具体的なエラーは次のとおりです。 frame= 68 fps= 67 q=28.0 00000000000000000000000000001000size= 22kB time=00:00:00.50 bitrate= 363.2kbits/s dup=1 drop=0 Enter command: <target> <time> <command>[ <argument>] Parse error, at least 3 arguments were expected, only 1 given in string 'om/pt_br/nx/R3T4N2_HD3D_demoCheckedOut.flv' ffmpegの出力からの詳細: [buffer @ 0xa30e1e0] w:800 h:600 pixfmt:yuv420p tb:1/1000000 sar:0/1 sws_param:flags=2 [libx264 @ 0xa333240] using cpu …
23 ffmpeg 


4
4つのタスクを並行して…どうすればいいですか?
ディレクトリに多数のPNGイメージがあります。これらの画像を圧縮するために実行するpngoutというアプリケーションがあります。このアプリケーションは、私がやったスクリプトによって呼び出されます。問題は、このスクリプトが次のように一度に1つずつ実行することです。 FILES=(./*.png) for f in "${FILES[@]}" do echo "Processing $f file..." # take action on each file. $f store current file name ./pngout -s0 $f R${f/\.\//} done 一度に1つのファイルのみを処理するには、多くの時間がかかります。このアプリを実行した後、CPUがわずか10%であることがわかります。そのため、これらのファイルを4つのバッチに分割し、各バッチをディレクトリに入れて、4つのターミナルウィンドウ、4つのプロセスから4を起動できることを発見しました。ジョブは時間の1/4かかります。 2番目の問題は、イメージとバッチを分割し、スクリプトを4つのディレクトリにコピーして、4つのターミナルウィンドウを開き、bla bla ... 何も分割せずに、1つのスクリプトでそれをどのように行いますか? 私は2つのことを意味します:最初にbashスクリプトからどのようにバックグラウンドにプロセスを起動しますか?(最後に追加するだけですか?)2番目:4番目のタスクを送信した後、バックグラウンドへのタスクの送信を停止し、タスクが終了するまでスクリプトを待機させるにはどうすればよいですか?つまり、1つのタスクが終了すると新しいタスクをバックグラウンドに送信するだけで、常に4つのタスクを並行して保持しますか?そうしないと、ループは何十億ものタスクをバックグラウンドで起動し、CPUが詰まります。

1
kill-windowのtmux無効確認プロンプト
私はマニュアルページに目を通しましたので、これは無駄な質問かもしれません。kill-windowの確認メッセージ(Ctrl-b &またはCtrl-b kill-windowデフォルトのセットアップ)でイライラします。これは常に以下を提供します。 「kill-window」を確認しますか?(y / n) 個人的に、私は本質的にCtrl-b &意図せずヒットすることはありません。このプロンプトまたはtmuxの一般的なプロンプトを無効にする方法はありますか?
23 tmux 

2
パイプから読み取るときにawkが完全なバッファリングを行う理由
nmea文字列を送信するgpsデバイスに接続されたシリアルポートから読み取ります。 私の要点を説明するための簡略化された呼び出し: $ awk '{ print $0 }' /dev/ttyPSC9 GPGGA,073651.000,6310.1043,N,01436.1539,E,1,07,1.0,340.2,M,33.3,M,,0000*56 $GPGSA,A,3,28,22,09,27,01,19,17,,,,,,2.3,1.0,2.0*39 $GPRMC,073651.000,A,6310.1043,N,01436.1539,E,0.42,163.42,070312,,,A*67 GPGGA,073652.000,6310.1043,N,01436.1540,E,1,07,1.0,339.2,M,33.3,M,,0000*55 $GPGSA,A,3,28,22,09,27,01,19,17,,,,,,2.3,1.0,2.0*39 代わりにパイプから読み取ろうとすると、awkは入力をバッファしてからstdoutに送信します。 $ cat /dev/ttyPSC9 | awk '{ print $0 }' <long pause> GPGGA,073651.000,6310.1043,N,01436.1539,E,1,07,1.0,340.2,M,33.3,M,,0000*56 $GPGSA,A,3,28,22,09,27,01,19,17,,,,,,2.3,1.0,2.0*39 $GPRMC,073651.000,A,6310.1043,N,01436.1539,E,0.42,163.42,070312,,,A*67 GPGGA,073652.000,6310.1043,N,01436.1540,E,1,07,1.0,339.2,M,33.3,M,,0000*55 $GPGSA,A,3,28,22,09,27,01,19,17,,,,,,2.3,1.0,2.0*39 バッファリングを回避するにはどうすればよいですか? 編集:カイルジョーンズは、猫がその出力をバッファリングしているが、それは起こっていないようだと示唆した: $ strace cat /dev/ttyPSC9 | awk '{ print $0 }' write(1, "2,"..., 2) = 2 read(3, "E"..., …
23 awk  tty  serial-port 

2
デスクトップで6つのgettyプロセスが実行されているのはなぜですか?
私のデスクトップシステムは次のとおりです。 $ uname -a Linux xmachine 3.0.0-13-generic #22-Ubuntu SMP Wed Nov 2 13:25:36 UTC 2011 i686 i686 i386 GNU/Linux を実行するとps a | grep getty、次の出力が得られます。 900 tty4 Ss+ 0:00 /sbin/getty -8 38400 tty4 906 tty5 Ss+ 0:00 /sbin/getty -8 38400 tty5 915 tty2 Ss+ 0:00 /sbin/getty -8 38400 tty2 917 tty3 …

4
Linuxファイルシステムキャッシュから特定のファイルをドロップしますか?
Linuxファイルシステムキャッシュからすべてをドロップできることは知っていますが、特定のファイルを1つだけドロップする方法はありますか?または、ファイルがキャッシュされないようにしますか?または、書き込むファイルをキャッシュしないようにプロセスに指示しますか? 多くの小さなファイルを読み取り、大きなファイルを書き込むプロセスがあります。ディスクシークを回避するために小さなファイルをキャッシュに保持したいのですが、大きなファイルをキャッシュする必要はありません。

1
Ubuntuの起動中に「i8042.nomux = 1」カーネルオプションは何をしますか?
マルチゲストタッチパッド付きのラップトップを持っています。私のタッチパッドは、Ubuntu、Fedora、openSUSE、Linux Mint、Knoppix、Puppy、SlitazなどのLinuxディストリビューションでは動作しません。私は多くのことを試しましたが、何もうまくいきませんでした。Synapticsのドライバーと1年以上苦労していますが、うまくいきません。 それからどこかでi8042.nomuxカーネルオプションについて読んだ。そこで、次のオプションを使用してUbuntuを起動しました。 i8042.nomux=1 i8042.reset これにより、タッチパッドはUbuntuのすべてのバリアントとLinux Mintのような派生物で動作するようになりました。 これらのオプションについて知りたいです。このオプションが正確にわかっていれば、このオプションはUbuntuでのみ機能するため、すべてのLinuxディストリビューションでタッチパッドを使用できます。

4
発信接続を発生時に記録する
プロセスが作成するすべての発信接続をファイルに記録する方法はありますか?私は承知していますがnetstat、それはある期間の情報を実行して記録するものというよりも、ある時点のスナップショットのようです。 IPまたはホスト名、ポート、および接続を確立するプロセスのみが必要です。
23 tcp  netstat 

4
パイプコマンドを実行する場合、Linuxユーティリティはスマートですか?
ターミナルでいくつかのコマンドを実行していましたが、パイプコマンドを実行するときにUnix / Linuxがショートカットを取得しますか? たとえば、100万行のファイルがあり、最初の10行にが含まれてhello worldいるとします。コマンドを実行するとgrep "hello world" file | head、最初のコマンドが10行を検出するとすぐに停止しますか、それともファイル全体を最初に検索し続けますか?

1
ユーザーのデフォルトの.bashrcファイルを設定するにはどうすればよいですか?
Ubuntu 10.4では、/etc/bash.bashrcファイルを編集してコマンド履歴サイズ(HISTSIZE=5000)などの変数を設定しましたが、新しいユーザーを作成すると、デフォルトでUbuntu .bashrcはホームディレクトリにファイルを提供し、このセットHISTSIZE=1000が私のものをオーバーライドしています。.bashrc作成されたデフォルトのファイルを変更するにはどうすればよいですか?

3
ログを1時間ごとにローテーションするようにlogrotateを設定するにはどうすればよいですか?
UnixおよびLinux管理ハンドブックよるとman、logrotateのはのためのオプションがありdaily、weeklyとmonthly、そこに追加する方法ですhourlyオプションは? このブログ記事は、あなたが設定することができます言及size 1し、時間のオプションを削除(例:daily)し、手動で呼び出すlogrotateとcron-私のようなものを想定 logrotate -f /etc/logrotate.d/my-hourly-file しかし、ログを1時間ごとにローテーションするためのよりエレガントなソリューションはありますか?
23 linux  logrotate 


4
私のLinuxマシンに誰がSSHしているのかを追跡するにはどうすればよいですか?
Ubuntu 10.04を実行しています。誰がボックスにログオンしたか、何時、さらには(これはあまりにも多くの質問をしているかもしれない)彼らの使用したコマンドのレポートを毎日取得できる方法はありますか?これは使用率の低いボックスですので、これはどのアクティビティが行われているのかを知る良い方法だと思います。 これらの同じ行に沿って、rsyncやsshを介してリモートで単一のコマンドを実行するなど、非対話型シェルを介してボックスで処理が行われたときを追跡することは不可能だと聞きました。それは本当ですか、それともこれを記録して追跡する方法がありますか?
23 ssh  security  logs 

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