Unix & Linux

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

4
端末からファイル名に基づいて特定のファイルを削除する
名前付きのファイルを含むディレクトリがあります rho_0.txt rho_5000.txt rho_10000.txt rho_150000.txt rho_200000.txt 等々。5000の倍数であるすべてを削除したいと思います。 私は次のことを試しました:printf 'rho_%d.txt\n' $(seq 5000 10000 25000) | rmしかし、それは私に応答を与えましたrm: missing operand。 これを行う別の方法はありますか?
13 files  rm 

4
パッケージをアップグレードした後、再マウント/読み取り専用に戻すことができません
Debian Stretchを使用しています。ルートパーティションがマウントされていread-onlyます。私はパッケージをインストールまたはアップグレードする場合にのみ、され/に再マウントread-write(aptのフックを使用することによって)、その後にバックを再マウントro。 パッケージのアップグレード後/、読み取り専用に再マウントできないことがあります。 mount -o remount,ro / mount: / is busy 古いDebianバージョン(Wheezy)では、リンク解除された開いているファイルを一覧表示できましたlsof。 lsof +L1 または、より具体的には、/roに再マウントされないようにするファイル: { lsof +L1 ; lsof|sed -n '/SYSV/d; /DEL|(path /p;' ; } | grep -Ev '/(dev|home|tmp|var)' ただし、Debian Stretchでは、lsof +L1ファイルはリストされません。 私はへの変更が表示されない+|-Lでman lsof、それが働いて停止した理由を説明します。 lsof + L1がリンク解除された開いているファイルをリストしないのはなぜですか? /が読み取り専用に再マウントされないようにするファイルをリストするにはどうすればよいですか? 更新 私は停止することができるすべてのプロセスを停止している、とだけ持っているinitとgetty、まだ実行されているが、私はまだない再マウントすることができます/しますro。
13 debian  files  apt  readonly  lsof 

4
TRIMが実際にSSDで動作することを独立して検証する
私はluksOpenでLUKSパーティションを持っています:/dev/sda1--allow-discards cryptsetup --allow-discards luksOpen /dev/sda1 root 次にext4、discardオプションを使用してファイルシステムをマウントします。 grep /dev/mapper/root /proc/mounts /dev/mapper/root / ext4 ro,relatime,block_validity,discard,delalloc,barrier,user_xattr,acl 0 0 次に、マウントされたパーティションの空き領域をトリミングします。 fstrim -v / ではdf、/80%の空き容量があります。つまり/dev/sda1、では、ディスクの80%がバイナリゼロです。 で画像を複製した場合 cat cat /dev/sda1 > sda1.img そして、イメージをxzで圧縮すると、ディスク上のすべてのゼロが圧縮されるはずです。ディスク上のデータの20%は暗号化されているため、ランダムに見え、圧縮できないはずです。したがって、xzで圧縮されたイメージは約になります。未加工サイズの20%。 ただし、結果のxz圧縮イメージは、元の元のイメージとほぼ同じサイズです。 私の推論は正しいですか? なぜ私の理論は実践に変換されないのですか?
13 ext4  ssd  cryptsetup  trim  fstrim 

3
なぜ `|`がglobパターンで文字通り処理されないのですか?
私の質問は、シェル変数に正規表現を格納することで、シェルに特殊な文字を引用符で囲む際の問題をどのように回避できるかということです。。 エラーがあるのはなぜですか: $ [[ $a = a|b ]] bash: syntax error in conditional expression: unexpected token `|' bash: syntax error near `|b' [[ ... ]]の第2オペランドの内側は=、グロビングパターンであると予想されます。 a|b有効なグロビングパターンではありませんか?違反している構文規則を指摘できますか? 以下のコメント|は、パイプとして解釈されることを指摘しています。 次に=、globパターンを=~regexパターンに変更すると |機能します $ [[ $a =~ a|b ]] 私はから学んだ学習のBashでP180 私の以前の記事|でも(例では、解析条件式を含む)の解釈のいずれかの他のステップの前に、解釈の先頭にパイプとして認識されています。では、を使用するときに、無効な使用時にパイプとして認識されることなく|、を使用するときに正規表現演算子としてどのように認識でき ますか?そのため、パート1の構文エラーは、それがパイプとして解釈されることを意味しないと思います。=~=| シェルが標準入力またはスクリプトから読み取る各行は、パイプラインと呼ばれます。0個以上のパイプ文字(|)で区切られた1つ以上のコマンドが含まれています。読み取るパイプラインごとに、シェルはそれをコマンドに分割し、パイプラインのI / Oを設定してから、コマンドごとに以下を実行します(図7-1)。 ありがとう。
13 bash 

4
uname is broken:現在実行中のカーネルを確認するにはどうすればよいですか?
> uname -r FATAL: kernel too old > cat /proc/cmdline FATAL: kernel too old / bootには3つの* .vmlinuz-linuxファイルがあります。現在実行中のカーネルを確認するにはどうすればよいですか? 最小限のシェルを備えた限られた環境で実行していることに注意してください。私も試しました: > sh -c 'read l < /proc/version; echo $l' FATAL: kernel too old > dd if=/proc/version FATAL: kernel too old 何かご意見は?
13 linux  glibc 

6
debian stretch(9)にmongodb 3.4をインストールするには?
debian stretchにmongodb 3.4をインストールします。残念ながら、debian stretchパッケージはmongodb 3.2(https://packages.debian.org/stretch/mongodb)のみです。 mongodbのドキュメントでは、debian 7および8(https://docs.mongodb.com/manual/tutorial/install-mongodb-on-debian/)のみに言及しています。debian 8コマンドを使用するとき、依存関係が満たされていないため、mongodbパッケージをインストールできません。 jessie-backportsを許可すると、満たされていない依存関係エラーはなくなりますが、これを実行してjessie-backportsパッケージを一気にインストールする必要があるかどうかはわかりません。 debian stretchでmongodb 3.4をどのようにインストールしますか? アドバイスをありがとう。
13 debian  mongodb 

4
コマンドのネットワークアクティビティをトレースする方法
コマンドのネットワークアクティビティをトレースしたいのですが、成功せずにtcpdumpとstraceを試しました。 たとえば、パッケージをインストールしている場合、または特定のサイトに到達しようとするコマンドを使用している場合、そのネットワークアクティビティ(到達しようとしているサイト)を表示したいです。 tcpdumpを使用してこれを行うことができると思います。試しましたが、システムのすべてのネットワークアクティビティを追跡しています。複数のネットワーク関連コマンドを実行していて、特定のコマンドネットワークアクティビティのみを追跡したい場合、正確な解決策を見つけるのは困難です。 それを行う方法はありますか? 更新: ネットワークインターフェースで行われるすべてを追跡したくありません。コマンド(#yum install -y vimなど)のネットワークアクティビティを追跡したいだけです。到達しようとするサイトなど。


4
指定されたファイルを除くすべてのファイルを見つける方法
のlsような結果を与えることができます [root@localhost ~]# cd /etc/yum.repos.d/ [root@localhost yum.repos.d]# ls CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo しかし、実際に私は見つけることを期待CentOS-Base.repo、CentOS-Debuginfo.repoおよびCentOS-Vault.repoなくCentOS-Media.repo。だから私はこのコマンドを実行します ls [^\(Media\)] しかし、エラー情報が表示されます。どうすればよいですか?
13 wildcards 

2
SIGQUITはSIGTERMと同じですか?
私はCentOS / RHELを学び、現在、プロセス管理についていくつかのことをしています。 私が読んでいるRHCSAの本はkill 1234、SIGQUITの送信としての実行について説明しています。私はいつも、シグナルタイプのスイッチを追加せずにkillコマンドをデフォルトにすべきだと思っていましたkill -15 SIGTERMはkill -15SIGKILLはkill -9そうですか? CentOS / RHELはわずかに異なる方法を使用しkill -15ていますか、それとも間違えただけですか? 編集:kill -lSIGQUITを提供kill -3し、キーボードを使用してプロセスを終了することに関連付けられているようです。man 7 signalまた、SIGQUITがkill -3であると述べているので、SIGQUITがkill -15デフォルトであると述べるのは私の本が間違っているとしか思いません。

3
Linuxのホスト名を決定するものは何ですか?
ここ数年、私はLinuxをメインシステム、具体的にはFedoraとして使用してきましたが、一部のネットワークに接続してIPになった場合を除き、ホスト名が「localhost」に設定されていました。今日、私は理解するのに苦労している以下の行動を経験しました。 ラップトップの別のパーティションにUbuntuインストールをセットアップし、Ubuntuのインストール中にコンピューター名/ホスト名を設定します。ただし、Fedoraを再起動すると、FedoraはUbuntuのインストール時に設定した名前にホスト名を更新しました。 ホスト名はディストリビューションのインストールのパーティションに設定および保存され、Fedoraの/ etc / hostnameの内容は「localhost.localdomain」のままですが、hostnameコマンドを実行すると新しいホスト名が表示されます。両方のインストールはefiブートパーティションを共有しますが、それ以外は個別です。Fedoraのインストールが新しいホスト名を読み取っている場所と理由を知りたいのですが?

2
いくつかの同時コマンドの後にbashコマンドを実行しますか?
いくつかのコマンドを並行して実行したい。これらのコマンドがすべて終了したら、次のコマンドを開始します。私は次のアプローチがうまくいくと思いますが #!/bin/bash command1 & command2 & command3 && command4 しかし、そうではなかった。command4最初の3つのコマンドすべてが完全に終了したときに実行する必要があります。

4
これらのパケットが自分のものではない場合でも、すべての着信パケットをNICにキャプチャする方法
知る限り、NICはローカルエリアネットワークのワイヤからすべてのパケットを受信しますが、宛先アドレスがそのIPと等しくないパケットを拒否します。 ユーザーのインターネット利用を監視するアプリケーションを開発したい。各ユーザーには固定IPアドレスがあります。 私と他の一部の人々は、DES-108 8ポートファストイーサネットアンマネージドデスクトップスイッチに接続されています 前に述べたように、私は自分に属するパケットだけでなく、すべてのユーザーからのすべてのトラフィックをキャプチャします。 NICまたは他のコンポーネントにすべてのパケットを強制的に受信させるにはどうすればよいですか?

1
Solaris 11上のPOSIX Awk?
これは多かれ少なかれ、次の2つのフォローアップの質問です。 awk '!x [$ 0] ++'ファイルを介して重複行を削除する構文エラー SunOsおよびLinuxでのawk / nawkの代替 Solaris 10(SunOS 5.10)では、次の結果が得られます。 $ type -a awk awk is /usr/bin/awk $ PATH="$(getconf PATH)" type -a awk awk is /usr/xpg4/bin/awk awk is /usr/bin/awk $ Solaris 10では、/usr/bin/awkPOSIX標準のawkはのような構文は受け付けていません'!x[$0]++'が、/usr/xpg4/bin/awkありません。これで十分です。 ただし、Solaris 11上で、唯一の存在である/usr/bin/awkにもしてgetconf PATH。があり、nawkありますoawkが/usr/bin、これらはどこからでもシンボリックリンクによって示されていないことは明らかです。 SolarisがPOSIX認定を受けていることを知って、これは驚きました。 他のPOSIX準拠システムでも動作する移植可能なコードを使用して、Solaris 11でPOSIX準拠のAwkを標準的に入手するにはどうすればよいですか?(または、存在するかどうかを確認し、存在する場合はこれらのいずれnawkかoawkを使用する唯一のオプションですか?) そのことについては、何をしている nawkとoawk?
13 awk  solaris  posix 

2
/ optパッケージはどこにログを書き込む必要がありますか?
カスタムパッケージをにインストールし/opt/package_name、構成ファイル/etc/opt/package_nameと静的ファイルを保存します/var/opt/package_name/static/-すべてFHSが推奨する規則に従っています。[ 1 ] [ 2 ] [ 3 ] また、いくつかのログファイルを保存する必要があります。分析ツールで検出できるようにしたいので、従来の場所にも配置する必要があります。これらが入るべきか: /var/log/package_name (これはカスタムパッケージですが、システムパッケージのように) /var/opt/package_name/log(/var/opt慣習に従いますが、これは発見可能ですか?) 他に何か?
13 logs  fhs 

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