Unix & Linux

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

2
youtube-dlを再起動しています
これは本当に簡単なことだと思いますが、どうすればいいのかわかりません。 最近、youtube-dlの設定ファイルを更新し、最新バージョンにアップグレードしました。更新メッセージは、アップグレードを完了するためにプログラムを再起動するように言っていますが、私は一生、どうやってそれを理解することができません。ドキュメンテーションはそうするためのコマンドを提供していません。実行service youtube-dl restartすると、サービスが見つからないことが返されます。 手動インストール方法でインストールしたため、を使用してアップグレードしましたyoutube-dl -U。Ubuntu Server 14.10を使用しています。

3
`dd`を使用してデータブロックを右シフトするにはどうすればよいですか?
簡単な例として、100MBのrawブロックデバイスを考えます。つまり、合計512760バイトの512バイトの204800ブロックです。 最初の98MB(200704ブロック)をシフトして、その前に2MB(4096ブロック)のギャップを設けることが課題です。これをインプレースで行うには、読み取られていないセクターに何も書き込まれないことが必要です。これを実現する1つの方法は、バッファーを導入することです。 $ dd if=/dev/sdj2 count=200704 | mbuffer -s 512 -b 4096 -P 100 | dd of=/dev/sdj2 seek=4096 期待されるのはmbuffer、ライターに何かを渡す前に4096ブロックを格納することです。これにより、読み取られていない領域に何も書き込まれず、ライターがバッファーのサイズによってリーダーよりも遅れることが保証されます。バッファーは、リーダーとライターがそれらの制約内で可能な限り高速に動作できるようにする必要があります。 ただし、確実に機能するようには見えません。私は実際のデバイスを使ってみましたが、実際には機能しませんが、ファイルを使った実験は64ビットボックスでは機能しましたが、32ビットボックスでは機能しませんでした。 まず、いくつかの準備: $ dd if=/dev/sdj2 count=200704 | md5sum 0f0727f6644dac7a6ec60ea98ffc6da9 $ dd if=/dev/sdj2 count=200704 of=testfile これは機能しません: $ dd if=/dev/sdj2 count=200704 | mbuffer -s 512 -b 4096 -P 100 -H | dd of=/dev/sdj2 …
10 dd  block-device 

1
sdwdateを使用しているときにsystemdジャーナルのsystemdの「時刻が変更されました」メッセージスパムを無効にする方法
デフォルトでsystemdを使用するDebianストレッチとsdwdate(Slow Clock Adjuster(gh)を使用)の併用により、システムクロックが頻繁に変更されます。 その結果journalctl -f、無限にスパム送信されます。 [...] Nov 07 13:46:49 host systemd[766]: Time has been changed Nov 07 13:46:50 host systemd[766]: Time has been changed Nov 07 13:46:51 host systemd[766]: Time has been changed [...] これは、sysvinitを使用したDebian wheezyの問題ではありませんでした。 Time has been changedメッセージをジャーナルに送信しないようにsystemdを構成するにはどうすればよいですか? 関連質問Debian jessieの/ var / log / syslogでsystemdの「時刻が変更されました」というメッセージスパムを無効にする方法は?解決されましたが、その解決策はここでは機能しません。
10 systemd 

3
複数行のテキストファイルで、中かっこの間のすべてのテキストを削除するにはどうすればよいですか?
例: This is { the multiline text file } that wants { to be changed } anyway. になるはずです: This is that wants anyway. フォーラムでいくつかの同様の スレッドを見つけましたが、それらは複数行の中括弧で動作しないようです。 可能であれば、grep、sed、awkなどに基づくソリューションなど、1行の方法を使用することをお勧めします。 編集:ソリューションは問題ないようですが、元のファイルに中括弧のネストが含まれていることに気づきました。だから私は新しい質問を開いています。皆さん、ありがとうございます。複数行のテキストファイルで、ネストされた中かっこの間のすべてのテキストを削除するにはどうすればよいですか?


2
LinuxコンテナーとLinuxハイパーバイザーとは何ですか?
私はstackexchangeサイトを見ましたが、何も見つかりませんでした。Linuxコンテナhttps://en.wikipedia.org/wiki/LXCとハイパーバイザーhttps://en.wikipedia.org/wiki/Hypervisorのwikipediaエントリを確認しましたが、両方に対する説明は、どちらにも取り組んでいないことがわかります。http://www.linux.com/news/enterprise/cloud-computing/785769-containers-vs-hypervisors-the-battle-has-just-begunも見ましたが、それでも説明がありません。 virtualboxなどのVMで遊んだことがあります。私の限られた理解への最初のアイデアの1つは、仮想マシンに関するものであったかもしれませんが、おそらくサンドボックス環境でソフトウェアをテストすることでした(マシンを購入する/購入する余裕がないときにSolarisボックスを持ち、ソフトウェアをどのように開発しているのかまだわかっているそのターゲットハードウェアは機能しています。)制限されている間、それを使用していました。これはおそらく、クラウドコンピューティングも飛躍的に進歩させた方法の1つです。質問は幅広いので、これが私がそれを蒸留する方法です- 一部の人々は、ハイパーバイザーと* nixコンテナーが何であるかを説明できますか? * nixハイパーバイザーは仮想マシンと同じですか、それとも違いがありますか?


1
Jenkinsはシステムのロケールを使用しません
ジェンキンスで面白い行動をした。 Jenkinsのシェルは私のシステムロケールを使用しません。 Jenkinsはjenkins私のシステムでユーザーとして実行されます。 jenkinsSSH経由でログイン: locale 表示: LANG = en_US.UTF-8 LANGUAGE = en_US:en LC_CTYPE = "en_US.UTF-8" など... envショーLANGとLANGUAGE変数: LANG = en_US.UTF-8 LANGUAGE = en_US:en id ユーザーのIDを示します。 uid = 1008(jenkins)gid = ... 上記のコマンドをjenkinsジョブシェルに入力します。 locale 表示: LANG = LANGUAGE = LC_CTYPE = "POSIX" など... envんではない示し、LANGおよびLANGUAGE変数 id ユーザーのIDを表示します(予想どおり): uid = 1008(jenkins)gid = ... ファイル: …

3
/ etc / network / interfacesのポストアップコマンドが起動時に複数回実行されるのはなぜですか?
内容は/etc/network/interfaces次のとおりです。 auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp post-up /etc/network/if-up.d/sshstart そして、sshstartその中に以下を持つスクリプトは次のとおりです。 curl something something darkside send a file over ftps in the background & /usr/bin/autossh -M 0 -f -N -o ServerAliveInterval=15 -o ServerAliveCountMax=3 -R 127.0.0.1:2005:127.0.0.1:22 -R 192.168.1.10:2006:192.168.2.110:1912 -L 127.0.0.1:5249:192.168.1.212:5249 username@17.16.15.2 -p 8080 マシンが再起動すると、curlコマンドが複数回実行され、ファイルがFTPサーバーで2〜3回終了します。プロセスを見ると、autosshの複数のインスタンスが実行されているようです...これがどのようになっているかわからないautosshは何らかの処理を行いますが、curlがファイルを複数回アップロードしないようにする必要があります。 私の直感は、sshstartスクリプト全体が複数回実行されていることですが、理由がわかりません。 起動時にネットワークセットアッププロセスの詳細を検索してみましたが、見つけることができたのは、インターフェースファイルの構文情報だけでした。 …

2
プロセスの作成時にPIDとプロセス名を出力する
ここでの質問から、OP pidofはシェルスクリプトで使用しているプロセスのPIDを繰り返しポーリングする必要があります。もちろん、これは非効率的です。pidof毎秒数回プログラムの新しいプロセスを開始する必要があるためです(これが問題のCPUスパイクの原因であることはわかりませんが、可能性が高いようです)。 通常、シェルスクリプトでこの種のことを回避する方法は、必要なデータを出力する単一のプログラムを操作しstdout、必要に応じてテキスト処理を行うことです。これには、より多くのプログラムを同時に実行する必要がありますが、ポーリングの目的で新しいプロセスが継続的に作成されないため、CPUの負荷が低くなる可能性があります。 したがって、上記の質問の1つの解決策は、プロセスの作成時にプロセスの名前とPIDを出力するプログラムを用意することです。それからあなたは次のようなことをすることができます: pids-names | grep some_program | cut -f 2 | while read pid; do process-pid "$pid" done これの問題は、それがより根本的な問題を提起することです、pidsとプロセス名はそれらが作成されたときにどのように印刷されますか? というプログラムを見つけましたps-watcherが、問題はperlスクリプトが繰り返し実行さpsれるため、実際には問題が解決しないことです。別のオプションを使用auditdすることもできます。これは、ログがを介して直接処理された場合に機能する可能性がありますtail -f。理想的な解決策は、これよりも単純で移植性が高いでしょうauditdが、最善の選択肢であれば解決策を受け入れます。

1
ワークスペーススイッチオーバーレイ効果を無効にする
Gnome 3.12でDebianテストを実行しています。「ワークスペースグリッド」拡張機能をインストールした後、ワークスペーススイッチのアニメーションはますます煩わしくなりました。Ctrl + Alt +矢印のショートカットを使用したときに表示される画面の真ん中にあることについて話しています。情報が提供されないほどバグが多くなり、さらに、オーバーレイが消えるまでに時間がかかり、その下に何があるのか​​本当にわかりません。 夕方または夜に、そのアニメーションは私の目を傷つけます(暗いオーバーレイと明るいブラウザ/ IDEの間の速いフラッシュ)。どうすれば無効にできますか?簡単に利用できるオプションがない場合(および拡張機能を使用してオーバーレイを無効にできる場合)、Gnome Shellの拡張機能を開発します。注:ワークスペース切り替えのスライド効果を含む、他のすべてのアニメーションがまだ必要です。

2
設定されていない場合、先行コロンを作成せずにPATHのような変数に追加します
にディレクトリを追加する必要がありますPKG_CONFIG_PATH。通常、私は標準を使用します export PKG_CONFIG_PATH=${PKG_CONFIG_PATH}:$(pyenv prefix)/lib/pkgconfig しかし、PKG_CONFIG_PATH以前に私のシステム上で設定されていません。したがって、変数は:文字で始まり、現在のディレクトリを最初に検索するように指示します。それは欲しくない。私は以下に落ち着きました、 export PKG_CONFIG_PATH=${PKG_CONFIG_PATH}${PKG_CONFIG_PATH:+:}$(pyenv prefix)/lib/pkgconfig しかし、それはとても醜いようです。もっと良い方法はありますか?変数がすでに設定されている場合にのみ、条件付きでコロンを追加する適切な方法は何ですか?

4
改行文字を含む文字列を置き換えます
bashシェル、以下のもののような行を持つファイルに first "line" <second>line and so on の1つ以上の出現をに置き換え"line"\n<second>てother characters、毎回取得したいと思います。 first other characters line and so on 両方などの特殊文字で文字列を置換する必要があり、私はそう"と<して改行文字と。 他の回答の間で検索したところsed、コマンドの右側(other characters文字列)の改行は受け入れられるが、左側は受け入れられないことがわかりました。 またはでこの結果を取得する方法(これよりも簡単)はありますか?sedgrep

6
psコマンドからキーと値のペアを抽出する方法
私はpsこのようなコマンドからアプリケーション名を抽出しようとしています: ps -af -u sas |grep "java"| grep -v "grep" そしてそれは以下を生成します: sas 24431 1 0 Oct10 ? 00:51:08 /usr/lib/jvm/java-1.7.0-oracle-1.7.0.25.x86_64/jre/bin/java -Denv=DEV -Dapp.name=myApp -Xms512m -Xmx1g -Dlog.dir=/apps/java/logs 私は使用しようとしましたegrepが、動作していないようです: ps -af -u sas|grep "java"| grep -v "grep"| egrep -o "-Dapp.name" -Dapp.name値「myApp」のみを取得するにはどうすればよいですか?

4
\\を使用する正規表現と\を使用する正規表現
どして grep e\\.g\\. <<< "this is an e.g. wow" そして grep e\.g\. <<< "this is an e.g. wow" 同じことをしますか? 3番目のスラッシュを追加すると、同じ結果になります。しかし、4番目のスラッシュを追加すると、機能しなくなります。これは、クラスの古い試験の質問に関係しています。2つのバックスラッシュのあるものは、「eg」で行を出力するために機能するかどうか尋ねましたが、最初は機能しないと思っていましたが、確認してみました。説明は何ですか?

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