Unix & Linux

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


1
AMD APU電力管理を完全にサポートするようにLinuxをセットアップする方法:Turbo Core、Cool'n'Quiet、Dynamic Power Management?
私の目的は、アイドルモードでの消費電力が少なく、使用時に優れたパフォーマンスを提供するミニサーバー(HTPCではない)をセットアップすることです。焦点は、可用性よりもデータの安全性にあります。言い換えれば、高品質のパーツですが、冗長性はストレージのみです。 偏見があるとは考えていませんでしたが、いくつかの調査の結果、AMDデスクトップAPUの一部が優れた価値を提供すると感じました。 残りの質問は次のとおりです。 GPUのアイドル状態は、電力消費を減らし、CPUのリソースを解放しますか? Cool'n'QuietとTurbo Coreは、アイドルモードでは意図した低消費電力を実現しますが、負荷がかかった状態ではパフォーマンスを発揮しますか? Linuxはこのシナリオを意図したとおりにサポートしますか?かなりの数の質問とフォーラムのディスカッションは、これが必ずしもそうではないことを示唆しているようです。

6
2つのファイルの違いを出力するにはどうすればよいですか?
私のファイルは以下で構成されています。おおよそ: username:username:username:username:username 上記の行は約600文字まで続きます。 awkコマンドラインから送信されたAPI / HTTPリクエストの引数として使用するために、コマンドを使用します。 私のスクリプトを使用して、「フォロー」しているユーザーアカウントのリストを取得し、24時間ごとに、ハードディスクの元のリストと新しく出力されたユーザー名のリストを比較します(そして、フォローしていないユーザーをエコーします)私。bashを使用してロジックをループにカプセル化する必要があります。各ユーザー名をテストします。 私の現在のスクリプト: user=$(awk -F: '{ print $1 }' FILE) # Grab $User to use as an argument. following=$(exec CURRENT_FOLLOWERS) # Outputs the new file echo "X amount of users are following you on 78B066B87AF16A412556458AC85EFEF66155" SAVE CURRENT FOLLOWERS TO NEW A FILE. if [[ DIFFERENCE …

6
Centos 7をWindowsの後にインストールしましたが、CentOSを起動できません
Windows 7とCentOS 7のデュアルブートをセットアップしたかった 500GBのディスクを搭載したWindows 7マシンがありました。Windowsパーティションを縮小して、CentOS 7にスペースを提供しました(約230GB)。USB CentOS 7ネットインストールスティックを作成し、そこから起動しました。私は、CentOS 7を(ディスク全体ではなく)空き領域にインストールするのに最適な構成でインストールを実行しました。私はネットインストールを行いましたが、すべてうまくいったように見えましたが、再起動するとWindowsに戻り、CentOSに入ることができませんでした。 USBから再起動し、を使用して状況を(慎重に)修正しようとしましたcfdisk。たとえば、CentOSブートパーティションと思われるものを選択しましたが、「オペレーティングシステムがありません」と報告されています。またcfdisk、CentOSブートでパーティションテーブルを書き込むと、パーティションテーブルをcfdisk再度読み取ることはできませんが、もう一度起動すると、フラグが設定されているように見えます。 現在、USB CentOS 7ネットインストールでは、ディスク上の次のパーティションが表示されます。 ## DATA /home 168GB centos-home ## SYSTEM /boot 500MB sda3 / 51GB centos-root swap 3.85GB centos-swap 「その他」のWindowsパーティションは次のとおりです。 ntfs 100MB sda1 ntfs 253GB sda2 これは問題ないように見えますが、CentOS 7のインストールに再度入ると、ルートパーティションのマウントポイントを作成する必要があることを示しています。初めてインストールしたディスクセットアップで[ここをクリックして自動的に作成する]をクリックしたときに自動的に実行されると思っていたため、最初はこれを実行しませんでした。 また、cfdisk「CentOSシステムのレスキュー...」からアクセスしたパーティションテーブルは次のようになります。 Unusable 1MB sda1 Primary ntfs 105MB sda2 Primary ntfs 265GB sda3 …

4
現在実行中のbashスクリプトがデバッグのために-xで呼び出されたかどうかを確認するにはどうすればよいですか?
launch.sh正しい所有者でファイルを作成するために、別のユーザーとして自分自身を実行するスクリプトがあります。最初にスクリプトに渡された場合、この呼び出しに-xを渡したい if [ `whoami` == "deployuser" ]; then ... bunch of commands that need files to be created as deployuser else echo "Respawning myself as the deployment user... #Inception" echo "Called with: <$BASH_ARGV>, <$BASH_EXECUTION_STRING>, <$->" sudo -u deployuser -H bash $0 "$@" # How to pass -x here if it …
11 bash  debugging 

2
/ usr / bin / installはコピー以外に何をしますか?
いmake install時間コールのほとんどのMakefileで/usr/bin/install? /usr/bin/installコンパイルしたばかりのファイルをにコピーする以外に必要な作業は何/usr/bin/localですか? manページには、/usr/bin/installファイルのコピーと属性の設定が記載されています。設定するのにとても重要な属性は何ですか? 必要のない許可モードと所有者/グループを設定するだけですか?

3
ファイルのmtimeをエポック形式で設定するにはどうすればよいですか?
エポック形式でファイルのmtime を取得する方法を知っています。 stat --format=%Y <file> しかし、エポック形式でファイルのmtime を設定する方法を理解できませんでした。touch(1)のマニュアルページは、「タイムスタンプ」値​​(月、日、時間、分などを使用する多かれ少なかれ固定形式)または「ほとんど自由な形式の人間が読める日付文字列」のみを受け入れるようです。 調査する必要がある別のユーティリティはありますか? ありがとう。

2
mdのbcacheまたはbcacheのmd
bcacheを使用すると、フラッシュベースのソリッドステートドライブ(SSD)などの1つまたは複数の高速ディスクドライブを、1つまたは複数の低速ハードディスクドライブのキャッシュとして機能させることができます。 正しく理解できれば SSD *を割り当てて、複数のバッキングHDDをキャッシュし、その結果キャッシュされたデバイスをmdadm または 複数のHDDを単一のバッキングmdデバイスにRAID化し、SSDをキャッシュに割り当てることができます どちらがより賢明なアプローチなのか疑問に思っています。RAID5 / 6を拡張することは、何らかの方法を使用する方が簡単かもしれないと思いますが、どちらが良いかわかりません! VMのバッキングファイルを含む大規模な非ルートファイルシステムの場合に、1つのアプローチを他のアプローチよりも選択するのに十分な理由(たとえば、バッキングストレージの増加など)はありますか? * 「SSD」とは、ある種の冗長SSDデバイスを意味します。たとえば、2つの物理SSDのRAID1

3
より高速なデータの並べ替え
bedファイルをランダムに10000回ソートし、毎回上位1000行を取得する必要があります。現在、私は次のコードを使用しています: for i in {1..100}; do for j in {1..100}; do sort -R myfile.bed_sorted | tail -n 1000 > myfile.bed.$i.$j.bed done done これをファイルごとに行うには、約6時間かかります。私はそれらのうちの約150を解決する必要があります。これのより速い解決策はありますか? 私が持っているデータのサンプル(myfile.bed_sorted): chr1 111763899 111766405 peak1424 1000 . 3224.030 -1 -1 chr1 144533459 144534584 peak1537 998 . 3219.260 -1 -1 chr8 42149384 42151246 peak30658 998 . 3217.620 -1 …
11 sort 

2
ファイルで「\ r \ n」を「\ n」に置き換える最も高速で最もコアな方法は?
私trはよりコアな方法であると思います、それゆえおそらく与えられたファイル内のものを置き換えるより速い方法でしょう。 ただし、trは等しい量の文字のみを置き換えることができます。意味... 2文字は2文字でのみ置換できます。つまり、置換を意味します \r\nと\nは問題外ですtr 次善の選択肢はsed何ですか? trに機能がないことを考える\r\nと\n、sedはファイルで置き換える最もコアで最速の方法ですか? 可能な場合は例を示します。
11 sed  replace  tr 

1
ファイアウォール(iptables)がブリッジ(brctl)に干渉するのはなぜですか?
br02つのインターフェースに「接続」されたブリッジをセットアップしました。 eth0、実際のLANに接続されている物理インターフェース、 vnet0、KVM仮想インターフェース(Windows VMに接続)。 そして、私はフォワードチェーンにこの単一のファイアウォールルールを持っています: iptables -A FORWARD -j REJECT これで、機能している唯一のpingは、VMからホストへのものです。 br0インターフェイスは、私のホストマシンのIPアドレスを所有しています。eth0そして、vnet0ビューのホストの観点から、任意のIPを「所有」しません。Windows VMには静的IP構成があります。 私のiptablesルールをに変更した場合ACCEPT(またはさらに制限の厳しいものを使用した場合iptables -A FORWARD -o br0 -j ACCEPT)、すべてが正常に機能します!(つまり、VMから任意のLANマシンにpingを実行でき、その逆も可能です)。 すべてのIP転送カーネルオプションが無効になります(などnet.ipv4.ip_forward = 0)。 では、netfilterファイアウォールは、有効にさえされていないものをどのようにブロックできるのでしょうか。 さらに、VM-LANトラフィックはeth0、およびのみを意味しvnet0ます。それでも、-o br0「作品」を使用してFORWARDトラフィックを許可するように見えます(ただし、私は慎重にチェックしませんでした)。

3
1回のパスで複数の文字列を置き換える
テンプレートファイルのプレースホルダー文字列を、一般的なUnixツール(bash、sed、awk、perlなど)で具体的な値に置き換える方法を探しています。交換が1回のパスで行われることが重要です。つまり、すでにスキャン/交換されたものを別の交換と見なしてはなりません。たとえば、次の2つの試みは失敗します。 echo "AB" | awk '{gsub("A","B");gsub("B","A");print}' >> AA echo "AB" | sed 's/A/B/g;s/B/A/g' >> AA この場合の正しい結果はもちろんBAです。 一般に、ソリューションは、入力を左から右にスキャンして、指定された置換文字列の1つとの最長一致を検索し、各一致について置換を実行して、入力のそのポイントから続行することと同等でなければなりません(すでに読み込まれた入力も、実行された置換も一致と見なされます)。実際、詳細は関係ありません。置換の結果が全体または一部が別の置換の対象になることはありません。 注私は正しい一般的なソリューションのみを探しています。特定の入力(入力ファイル、検索および置換ペア)で失敗するソリューションを提案しないでください。
11 bash  sed  awk  string  replace 

3
コンパイルを続行するにはどうすればよいですか?
makeソースツリー全体を再コンパイルしなくても、いつでもプロセスを中断できることはわかっています。私が知っているようにmake、ターゲットがまだコンパイルされていない場合、または最後のコンパイル後にソースコードが変更されている場合にのみ、ターゲットをコンパイルします。 しかし、私が中断した場合make、1つ以上の(並行性レベルに応じて)ハーフレディバイナリが確実に存在します。次に実行するときに、それらはmakeどうなりますか?または、部分的にコンパイルされたバイナリを回避するためにCtrl+ を押すと、現在のターゲットが終了しCますか?

1
「invoke-rc.d」または「service」を使用してサービスを再起動する必要がありますか?
私はどちらが最善で、どのような状況で混乱している: invoke-rc.d apache2 restart または service apache2 restart 本当の違いはありますか? man service 次の興味深いビットがあります: サービスは、System V initスクリプトを可能な限り予測可能な環境で実行し、ほとんどの環境変数を削除し、現在の作業ディレクトリを/に設定します。 私は主にDebianに興味がありますが、Mint(これもDebianに基づいています)にも興味があります。

2
ssh -t上のstderr
これは出力をSTDERRに送信しますが、Ctrl+を伝搬しませんC(つまり、Ctrl+ Cはkillしますsshがリモートはしませんsleep)。 $ ssh localhost 'sleep 100;echo foo ">&2"' これはCtrl+を伝播しますC(つまり、Ctrl+ Cとsshリモートsleepを強制終了します)が、STDERRをSTDOUTに送信します。 $ ssh -tt localhost 'sleep 100;echo foo ">&2"' Ctrl+を伝播させながら、2番目に強制的にSTDERR出力をSTDERRに送信させるにはどうすればよいCですか? バックグラウンド GNU ParallelはCtrl+ を伝播するために「ssh -tt」を使用しますC。これにより、リモートで実行中のジョブを強制終了できます。ただし、STDERRに送信されたデータは、受信側のSTDERRに送信され続ける必要があります。

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