Unix & Linux

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

1
バックグラウンドで複数のbash関数を実行し、それらが戻るまで待機する
これは、nvidia-smi複数のホストでコマンドを実行し、その出力を共通ファイルに保存する単純なスクリプトです。ここでの目標は、非同期で実行することです。 ある&の終わりにprocess_host()十分な関数の呼び出し?私のスクリプトは正しいですか? #!/bin/bash HOSTS=(host1 host2 host3) OUTPUT_FILE=nvidia_smi.txt rm $OUTPUT_FILE process_host() { host=$1 echo "Processing" $host output=`ssh ${host} nvidia-smi` echo ${host} >> $OUTPUT_FILE echo "$output" >> $OUTPUT_FILE } for host in ${HOSTS[@]}; do process_host ${host} & done; wait cat $OUTPUT_FILE


3
特定のディレクトリ内のファイル/ディレクトリを指すすべてのシンボリックリンクを見つける方法
この質問へのまたはこのいずれかのあなたは(のは、それを呼びましょう与えられたディレクトリを指すシンボリックリンクを探す方法についての解決策を取得します(たとえば)/dir1私は、おそらく任意のファイル/フォルダの内側を指すシンボリックリンクに興味を持っていながら、) /dir1。 このようなディレクトリを削除したいのですが、他のディレクトリ(呼び出してみましょう)のように、安全に実行できるかどうか/dir2はわかりません/dir1。 さらに、絶対パスまたは相対パスを使用してこれらのシンボリックリンクを作成した可能性があります。私の唯一の助けは、チェックしたいシンボリックリンクがマウントされたファイルシステム上にあることを知っていることです/dir2。
14 symlink 

3
nmcliを使用して静的IPアドレスを割り当てる
だから私はVMに静的IPアドレスを与えようとしていますが、この場合は特に頑固です。 VMは、独自のパブリックIP範囲を持つESXiクラスターで実行されています。 私はそれをIPv4アドレスで動作させていましたが、ブートごとに再割り当てされることを除いて、nmcliをいじった後、IPv4アドレスを割り当てることができません。 インターフェイスはens32変更されipv4.addressesましたXXX.XXX.120.44/24(アドレスが必要です120.44)、ゲートウェイXXX.XXX.120.1を手動に設定しました。 なぜこれが機能しないのかについての洞察はありますか?すべてのオンラインガイドは、NetworkManagerではなく、古いネットワークサービス用です。

2
フラグ、オプション、および引数の違いは何ですか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 3年前に閉店しました。 ls -a(-aオプションを検討します) sudo -u username(-u=オプション、username= arg) chmod 664 my-dir(664=オプション、my-dir= arg) おそらくディレクトリ一覧を見るときを除いて、「これはフラグです」と言う例は考えられません。 -r--------. 1 david david 3344 May 19 17:48 611056.pdf これには、所有者に設定された「読み取りフラグ」がありますが、それだけです。それを「読み取りオプション」と呼ぶのを止めるのは何ですか? 私は主にDocBook XMLで技術文書を作成および編集しますが、可能な限り一貫性があり正確な違いの説明を探しています。しかし、私はすでにパターンが形成されているのを見ています: フラグはブール値になる傾向があります。例えば、setenforce 0 オプションは、コマンドの動作を定義するのに役立ちます。一部はオプションです。 引数は、操作するオブジェクトをコマンドに伝えます。 フラグとオプションを組み合わせて自分自身を見ることができました(一部のオプションには12個の値がありますが、ブール値には2つしかありません)。引数は、それ自体を維持するのに十分に異なって見えます。

1
PIDが指定されたプロセスの所有者を返す
私はリストからプロセスの所有者をつかもうとしpidof nmapています、ps -u <PID> | grep USER私は現在遊んでいる当時のものを取得するコマンドを持っていますが、それを実行すると、タイトルを印刷するだけになります(一番上の行)。 プロセスIDを指定して、所有者の名前を取得するにはどうすればよいですか?

3
トラップはサブシェルに継承されますか?
私は次のスクリプトを試しました: #!/bin/bash trap 'echo "touching a file" && touch $FILE' EXIT foo1(){ echo "foo1" } foo(){ echo "foo" export FILE=${FILE:-/tmp/file1} } (foo1) foo 上記のスクリプトの出力は次のとおりです。 [root@usr1 my_tests]# ./test.sh foo1 foo touching a file ただしfoo1、サブシェルで呼び出されるトラップも終了時に呼び出されることを期待していました。 これは予想されますか? さtrapサブシェルによって継承されましたか? はいの場合、どのような場合にtrapサブシェルに継承されますか?
14 shell  trap  subshell 

1
「kill -9」/ SIGKILLを使用しない理由
この質問を投稿したのは、直接回答が見つからないことに驚いたからです。これが重複している場合は謝罪-私は見た! 聞いたことがあるkill -9かkill -SIGKILL悪いかはわかりますが、理由はわかりません。私はべきでない場合はkill -9何をすべきである私は、プロセスを殺すためにですか?
14 process  kill 

4
バックグラウンドで同じコマンドを複数回実行する
複数のコマンドを実行し、bashを使用してそれらをバックグラウンドにするにはどうすればよいですか? 例えば: $ for i in {1..10}; do wait file$i &; done ここで、waitはカスタムバイナリです。 今、私はエラーを受け取ります: syntax error near unexpected token `;' 上記のコマンドを実行するとき。 バックグラウンドになったら、コマンドを並行して実行する必要があります。

3
bashを使用してPHP拡張フォルダーを見つける
Source Guardian PHP拡張機能をインストールするbashスクリプトを作成しようとしていますが、宛先ディレクトリはUbuntuの以降のリリースごとに異なります。 Ubuntu 14.04にPHP5をインストールすると、拡張機能が/ usr / lib / php5 / 20121212 + lfs /に保存されます。Ubuntu15.04では、このディレクトリが変更されます(例:/ usr / lib / 20131226 / /etc/php5/fpm/php.iniと/etc/php5/fpm/php-fpm.confを確認しましたが、これらのファイルには20121212 + lfsまたは20131226の記述がありません。 Source Guardian拡張機能を他の場所に配置すると、ロードされません。 プログラムで拡張フォルダを決定する方法はありますか?
14 bash  ubuntu  php 

3
再起動せずに70-persistent-net.rulesを再生成する方法は?
ファイル/etc/udev/rules.d/70-persistent-net.rulesは、再起動中に、udevを使用してLinuxシステム上に存在しない場合、自動生成されます。ただし、サーバーを再起動せずに、このルールファイルを(コマンドを使用して)作成する方法を知りたいと思います。 私はしばらくの間グーグルで探していましたが、このスクリプトによってルールファイルが生成されることがわかりました。 /lib/udev/write_net_rules ただし、いくつかの環境変数を適切に設定して、udevで起動したいので、コマンドラインからこのスクリプトを実行することはできません。手動で起動すると、「missing $ INTERFACE」というエラーメッセージが出力されます。スクリプトの開始前にenv変数INTERFACE = eth0を設定しても、「有効な一致が見つかりません」というエラーが出力されます。言うまでもなく、2つのインターフェイス(eth0およびeth1)があり、両方のルールファイルを生成する必要があります。 また、このようなudevイベントをトリガーして、udev自体からスクリプトを開始することを望んでいましたが、何も変わりません: udevadm trigger --type=devices --action=change だから、誰も/etc/udev/rules.d/70-persistent-net.rules再起動せずにファイル内の永続的なネットルールを再生成する方法を知っていますか?
14 linux  udev 

1
rsyncは、送信側から削除された宛先のファイルを削除しますか?
rsyncは、ソースから削除されたファイルを宛先から削除しますか? たとえば、ソース/ home / meに3つのファイルがあるとします。 a.txt b.txt c.txt ここで、コマンドを実行し、rsync -v /home/me/ user@ip.address:/home/backupファイルa.txt、b.txtおよびc.txtをコピーします/home/backup。 /home/backup現在の内容は a.txt b.txt c.txt から削除するa.txtと/home/me、rsyncを次に実行したときにa.txt削除され/home/backupますが、指定する必要があるオプションはありますか、それともまったく不可能ですか? これを行うrsyncに代わるものがあれば、それらも歓迎します。 サイドノート:私はこれとこのトピックに関連するこれを読みましたが、それが質問に正確に関連する方法を正確に理解または見ることができませんでした。
14 rsync  backup 

4
ワークフローを妨げることなく、スクリーンキャスト用のマウスをハイライトします
ドキュメント/チュートリアルビデオを作成するには、マウスを強調表示する必要があります。たとえば、黄色の半透明のコロナがその周りにあります。 マーカーは、クリックして移動するときにアクティブになっている必要がありますが、常にオンになっている場合は問題ありません。 背後にあるものの表示をある程度隠すことができますが、背後にあるものをクリックしたり、ウィンドウからフォーカスを離したりすることはできません。 Compizは過去のもののように見えます。find -cursorはアクション(クリック/動き)に結び付けられておらず、インタラクションをブロックします(描画中は「スルー」をクリックできません)。key-monは描画しません。正しく、インタラクションも無効にします。通常、少なくともタイリングウィンドウマネージャーでは、マウスハイライターに関してはバグがあります。 私はArch Linuxと素晴らしいwmを使用しています。 ありがとう!

3
SSL証明書が有効かどうかを確認するスクリプト
複数のSSL証明書があり、証明書の有効期限が切れたときに通知を受け取りたいです。 私の考えは、毎日簡単なコマンドを実行するcronjobを作成することです。 opensslLinux のコマンドを使用して、リモートサーバーの証明書情報を表示できることを知っています。つまり: openssl s_client -connect www.google.com:443 ただし、この出力には有効期限が表示されません。また、このコマンドをCTRL+で終了する必要がありますc。 スクリプトからリモート証明書の有効期限を確認し(できればを使用openssl)、ユーザーの操作なしで自動的に実行されるように「バッチモード」で実行するにはどうすればよいですか?

4
2つのバックグラウンドコマンドが与えられた場合、どちらかが終了したときに残りのコマンドを終了します
2つのサーバーを起動する単純なbashスクリプトがあります。 #!/bin/bash (cd ./frontend && gulp serve) & (cd ./backend && gulp serve --verbose) 2番目のコマンドが終了すると、最初のコマンドが実行を継続しているようです。 どちらかのコマンドが終了した場合、もう一方が終了するように、これをどのように変更できますか? バックグラウンドプロセスのエラーレベルをチェックする必要はなく、終了したかどうかだけを確認してください。

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