Unix & Linux

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

1
btrfsクォータを有効にすると、システムにどのような影響がありますか?
私はbtrfsスナップショットをかなり使用していますが、興味のあることの1つは、特定のスナップショットが占めるスペースの量、またはより具体的には、btrfsスナップショットが占有している排他データの量です。スナップショット、どれだけのスペースを解放するか。 この情報を見つける唯一の方法は、btrfsクォータを有効にすることです。 # btrfs quota enable / と実行 # btrfs qgroup show / これは非常に効果的です。問題は、実際にはこれ以外にbtrfsクォータを使用しないことです。つまり、btrfsクォータを常に有効にするか、「btrfs qgroup show /」コマンドを実行する直前に一時的に有効にするか、またはすぐに選択することができます。それらを無効にします。また、最後に聞いたところによると、btrfsの割り当てはまだ実験的なものです(私は間違っているのでしょうか?) 基本的に私が知りたいのは: btrfsクォータを有効にしておくと、システムの安定性に影響がありますか? btrfsクォータを有効にしておくと、システムのパフォーマンスに影響しますか? 「安全であるため」の答えは必要なときにのみクォータを有効にすることですが、実際には「btrfs qgroup show /」を実行して出力をより読みやすい形式で出力するスクリプトを作成し、そのコードを追加しています。クォータを常に有効または無効にすると、スクリプトの速度が大幅に低下し、複雑さが増すため、クォータを常に有効にしておくことをお勧めしますが、欠点があるかどうかはわかりません。
9 btrfs 

2
チェック(シミュレーション)する方法、btrfsサブボリュームを削除した後、どのくらいのスペースが解放されるのですか?
問題は簡単ではありません。BTRFSはCOWファイルシステムであり、ハードディスクに格納された1つのオブジェクトは多くのファイルから参照できます。 BTRFSスナップショットを運用サーバーのバックアップソリューションの一部として使用しています。このようにして、特定のサブボリュームのスペース効率の良い、閲覧可能な履歴を持っています(SnapBtrの変更を使用します)。 目的の異なる複数の独立したbtrfsサブボリュームと、それぞれのバックアップスキームがあります。空き容量が不足すると、のスマートな対数時間コストアルゴリズムに基づいて、各バックアッププールから最も不要なバックアップスナップショットを取得できますSnapBtr。 古いスナップショットの経過時間とそのバックアッププールの重要性を使用して、各バックアップを削除した後に解放されるデータの量に重みを付ける方法が必要です。以前の情報が欠けています。 BTRFSの空き領域の計算プロセスは簡単でも迅速でもないことを理解しています。解放されるスペースのサイズを取得するために、サブボリュームの削除をシミュレートするものが必要です。 誰か助けてもらえますか?このメッセージをに投稿しますlinux-btrfs@vger.kernel.orgか?

1
Linuxでsshpassとscpを使用して進行状況を表示するにはどうすればよいですか?
私のLinuxターミナルでは、このコマンドを使用しています sshpass -p "pass" scp -r me8@host.ca:/cmshome/me/file /home/me/Desktop パスワードが含まれているファイルをダウンロードします。sshpassがないと、ダウンロードの進行状況を確認できますが、これを使用すると、完了するまで空白のままになり、確認できません。 sshpassで確認する方法はありますか?
9 scp  cp 


2
find -execのifコマンド
私は現在のディレクトリの下にあるすべてのディレクトリとファイルを一覧表示し、それらがファイルまたはディレクトリである場合は、次のコマンドで書き込もうとしました: find -exec echo `echo {} : ;if [ -f {} ]; then echo file; else echo directory;fi` \; 私はそれがばかげたコマンドであることを知っています、-type fまたはのような他のものを使用できます-type dが、そのコードの一部が期待どおりに機能しなかった理由を知りたいです。それらすべてにディレクトリを出力するだけです。たとえば、出力findは次のとおりです。 . ./dir ./dir/file 私のコードの出力は: . : directory ./dir : directory ./dir/file : directory そしての出力 echo `echo dir/file : ;if [ -f dir/file ]; then echo file; else echo …

2
人の手動入力なし
私はCentos 6.6 Dockerイメージで作業しています。manページにアクセスするためにすべてをインストールしたと思いましたが、どうやら... $ yum install -y man man-pages man-pages-overrides [...] Complete! $ which man /usr/bin/man $ man man No manual entry for man 何が欠けていますか? コメントの質問について(皆さんの助けに感謝します): $ echo $MANPATH # empty $ man 1 man No entry for man in section 1 of the manual $ man 7 man No …
9 centos  man  docker 

1
Vimの不明な関数
次のファイル(vimscript.vim)があります。 function HelloWorld() echo "Hello World" endfunction call HelloWorld() そのファイルを開いて次のように入力すると、 :call HelloWorld() エラーが発生します: E117: Unknown function: HelloWorld
9 vim 

2
パスを指定してファイルシステムのUUIDを取得するにはどうすればよいですか?
ディレクトリまたはファイルのパスを渡されます。 このディレクトリ/ファイルが配置されているファイルシステムのUUIDを確実に提供するユーティリティ/シェルスクリプトはどれですか。 ファイルシステムのUUIDとはUUID=...、たとえばblkid Redhat Linuxを使用しています。 (誰かがここunix.stackexchange.comでこれを尋ねるべきだと誰かが提案したので、元のstackexchange.comから移動しました)

1
ディレクトリシンボリックトラバーサルと親ディレクトリについて
ディレクトリが/dir1あり/dir2/linked、後者が前者へのシンボリックリンクであるとしましょう。 ときにあなたがcdするlinkedとpwd、あなたは出力を得ます/dir2/linked。その後cd ..、あなたは着られるでしょう/dir2。この振る舞いは、あなたが/dir2/linked以前にいたという概念と一致しています。ただし、私が理解しているように、..任意のディレクトリの親ディレクトリ()は、ディレクトリiノード(つまり、物理的にディスク)に格納されています。明らかに、/dir2/linkedは本当になので/dir1、iノードの親ディレクトリは/ さらに複雑な問題に、内部ながら/dir2/linked、の出力ls ..とはcd .. ; ls .異なっています!cdシンボリックリンクされたパスを尊重しているように見えますが、ls「物理的な」パスを尊重しています。ただし、この質問で述べたようにcd -P、このユースケースにはあります。 man pwd 「物理」および「論理」作業ディレクトリについて言及していますが、この時点ではまだいくつか質問があります。 でPWD述べたように、この動作は常に環境変数によって提供されman pwdますか? それらが両方ともシェルコマンド(つまり、プログラムではない)である場合、なぜデフォルトcdでls動作が異なるのですか? 一般的なプログラム(シェルコマンドではない)PWDは、物理パスの代わりに使用しますか?実装次第だと思いますが、経験則はありますか?

1
指定されたtty / ptyで端末を開くことは可能ですか?
(私はUbuntuを使用しています。)私の理解では、ttyは単なるポートの一種です。何かを入力すると、何かが出力されます。そして、端末(エミュレータ)はそれらの入出力を扱うソフトウェアです。文字通り端末は接続するポートを選択できます。 / devに多くのttyファイルが見られ、/ dev / pts /に多くのptsファイルが見られました。なぜそんなにたくさんあるのかわかりません。それらはすべて使用されていますか? そうでない場合、指定したptyで端末を起動できますか? 例えば gnome-terminal /dev/pts/47 更新 これを行う理由は、リモート端末を持ちたいからです。適切なアプローチはsshまたはtelnetを使用することです。 しかし、一時的なアクセスでは、あまり便利ではありません。socatを使用してttyまたはptyをクライアントに転送したい。次に、クライアントはそのptyまたはttyで端末を起動できます。 次のコードは正常に動作します。これはクライアントで実行され、サーバー側で「こんにちは」と表示されます。 echo "hello" > /home/myhomefoler/pty_created_by_socat
9 terminal  tty 

1
ディレクトリ名のエコーなしで前のディレクトリに移動します
この回答によりcd -、Bashの以前のディレクトリに変更するための省略形が得られました。これには大きな問題があります。変更先のディレクトリが出力され、画面スペースが無駄になります。そのディレクトリは次の行のプロンプトで繰り返されるためです。 私cd $OLDPWDもできることはわかっていcd - >/dev/nullます。その回答でも言及されていますが、それははるかにタイピングです。 でbashmanページ、それは言います: ...または-が最初の引数で、ディレクトリの変更が成功した場合、新しい作業ディレクトリの絶対パス名が標準出力に書き込まれます。 -最初の議論にならないようにするにはどうすればよいですか?cdオプションの引数のいずれかを使用して?使用するすべてのマシンで関数/エイリアスを定義する必要なしに、エコーを抑制したり、タイピングを最小限にしたりする他の方法はありますか?

6
awk-複数の.datファイルの2行目を1つのファイルに出力する
次のような複数のファイルがあります:(実際には80あります) file1.dat 2 5 6 9 7 1 file2.dat 3 7 8 4 1 3 2行目がすべて含まれているファイルが必要です。すなわち output.dat 6 9 8 4 これまでのところ、ファイル名をループしますが、その前にファイルを上書きします。たとえば、上記のファイルの出力は次のようになります 8 4 私のシェルスクリプトは次のようになります。 post.sh TEND = 80 TINDX = 0 while [ $TINDX - lt $TEND]; do awk '{ print NR==2 "input-$TINDX.dat > output.dat TINDX = $((TINDX+1)) done

3
デバイスはすでにマウントされているか、リソースがビジーです
問題 ::: hddに障害があったサーバーにRedhat 5.10 x64をインストールします。古い障害のあるhddを削除し、500 GBの容量の新しいHDDをインストールしました。インストール後、古いHDDから/ u001の下の新しいHDDにデータをコピーする必要があります。だから私は古いhdd(320GB)をサーバーに接続しました。に表示されて fdisk -lいますが、マウントしようとすると sudoマウント/ dev / sdb2または/ dev / sdb5と言う 注:fdisk -l / dev / sda =新しいHDD にあるように、古いhddにも古いOSがインストールされていました / dev / sdb =古いHDD デバイスはすでにマウントされているか、リソースがビジーです Disk /dev/sda: 500.1 GB, 500107862016 bytes 255 heads, 63 sectors/track, 60801 cylinders Units = cylinders of 16065 * 512 = …

7
grepはファイルのn行をスキップし、後に検索します
巨大なログファイルがあり、パターンの最初の発生をgrepし、この発生の直後に別のパターンを見つけたいと考えています。 例えば: 123 XXY 214 ABC 182 558 ABC 856 ABC 私の例では182、次の出現を見つけて見つけたいと思いますABC 最初の発生は単純です: grep -n -m1 "182" /var/log/file これは出力します: 5:182 ABCの次の出現を見つけるにはどうすればよいですか? 私の考えは、182の行番号に基づいて、grep最初のn行を(上記の例ではn=5)スキップするように指示することでした。しかし、どうすればよいですか?
9 grep 

1
grepを使用した無効な後方参照
つまり、1つの文字が3回繰り返され、その後に別の文字が3回繰り返される6文字の単語を見つけようとしています。たとえばaaabbbまたはoookkk。 やっています: grep -E "[a-z]\1{3}\S[a-z]\1{3}" filename まず、正規表現は正しいですか?第二に、なぜ私は得るのgrep: Invalid back referenceですか?

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