Unix & Linux

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


2
シェルで(ウィンドウではなく)秘密鍵のパスフレーズを要求するようSSHに強制する
起動後に初めてSSHを使用すると、秘密鍵のロック解除パスフレーズを要求されます(これは私が期待する動作です)。しかし、それはシェルではなくウィンドウで行われます(gksudoVS と同様sudo)。これはイライラします(ウィンドウをクリックするためにマウスを使用する必要があります)、次にバグが発生することがあります(全画面でGuakeターミナルを使用することがあります。その場合、SSHウィンドウに集中できず、Xを再起動する必要があります) )。 だから、私の質問は:ウィンドウをポップするのではなく、コマンドラインでSSHに秘密鍵のパスフレーズを要求する方法はありますか?

1
リモートからサーバーをテストし続けるシェルスクリプトを書き込もうとしたが、ログアウトするとelseステートメントに落ち続ける
サーバーをテストし続け、サーバーがダウンしたときにメールで通知するシェルスクリプトをここに記述しようとしています。 問題は、ssh接続からログアウトすると&、のようにコマンドの最後で実行したにもかかわらず./stest01.sh &、自動的に他の場所に分類され、再度ログインして強制終了するまで中断なくメールを送信し続けることです。 #!/bin/bash while true; do date > sdown.txt ; cp /dev/null pingop.txt ; ping -i 1 -c 1 -W 1 myserver.net > pingop.txt & sleep 1 ; if grep "64 bytes" pingop.txt ; then : else mutt -s "Server Down!" myemail@address.com < sdown.txt ; sleep 10 ; fi …

1
「ジョブ」を監視できないが「ps」を監視できる理由を説明してください。
jobsバックグラウンドで実行されているコードを確認するための私のお気に入りのコマンドです。それらを動的にチェックするために、私はタイプする傾向があります watch 'jobs' 何も表示されません。しかしながら watch 'ps' 完璧に動作します。私は何ヶ月もの間、同じ過ちを犯しています。 最初の方法が機能しないのに2番目の方法が機能しない理由を理解すると、同じエラーの発生を防ぐのに役立ちます。 誰か助けてもらえますか?

1
「passwd」で始まる名前のファイルを作成できないのはなぜですか。「/ etc」内?
Ubuntu 16.04がインストールされたPCを持っています。最近、いくつかのパッケージをインストールしたいのですが、インストールに問題があります。少し調べたところ、失敗はLinuxユーザーアカウントシステムに関連しているようです。問題は、接頭辞が付いた名前のファイルをパスpasswd.に作成できないことです/etc。 # ls /etc/passwd.* ls: cannot access '/etc/passwd.*': No such file or directory # touch /etc/passwd.test-test-test touch: cannot touch '/etc/passwd.test-test-test': Permission denied # ls /etc/passwe.* ls: cannot access '/etc/passwe.*': No such file or directory # touch /etc/passwe.test-test-test # /またはなどの他のパスにそのファイルを作成できます/usrが、/etcでは作成できません。また、で他のファイル名を使用してファイルを作成できますが/etc、接頭辞がのファイル名は使用できませんpasswd.。他のPCではこの問題を再現できません。 私は他のコマンドを試しました: nano /etc/shadow.xxx echo xxx > /etc/shadow.xxx touch /etc/test-temp-file && …

1
最もビジーなファイルのリスト
ファイル内のアクティビティの量でソートされた開いているファイルを一覧表示するツールを探しています。だからlsof、仕事をしません(私がを使用する方法を見落としているのでない限りlsof)。理想的には、ツールはのようtopに動作し、並べ替えの特定のアクティビティ(読み取り、書き込み、バイト、1秒あたりのシーク)を切り替えることができる必要があります。できれば、RHEL / CentOS / EPELですぐに利用できるようにしてください。 そのようなツールは存在しますか?


1
fdiskに表示されるハードディスクセクターの総数が理論上の計算と異なるのはなぜですか?
fdiskを使用してハードディスクをチェックすると、次のようになります。 Disk /dev/sda/: 21.5 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders, total 41943040 sectors しかし、255 x 63 x 2610を掛けると、その数は41929650になり、合計の数よりわずかに少なくなります。上記のセクターの。どうして?

5
ファイルをトランザクションでコピーする方法は?
ファイルをAからBにコピーしたいのですが、ファイルシステムが異なる場合があります。 追加の要件がいくつかあります。 コピーは全部かゼロかであり、クラッシュ時にファイルBの一部または破損は残されません。 既存のファイルBを上書きしないでください。 同じコマンドの同時実行と競合しないでください。成功するのは1つだけです。 私はこれが近づくと思います: cp A B.part && \ ln B B.part && \ rm B.part しかし3.は、B.partが存在する場合でも(-nフラグを使用しても)失敗しないcpに違反しています。その後、他のプロセスがcpに「勝ち取り」、リンクされたファイルが不完全な場合、1。が失敗する可能性があります。B.partも無関係のファイルである可能性がありますが、その場合は他の隠しファイル名を試さなくても失敗します。 私はbash noclobberが役立つと思いますが、これは完全に機能しますか?bashバージョンの要件なしで取得する方法はありますか? #!/usr/bin/env bash set -o noclobber cat A > B.part && \ ln B.part B && \ rm B.part フォローアップ、とにかくこれでいくつかのファイルシステムが失敗することを知っています(NFS)。そのようなファイルシステムを検出する方法はありますか? 他のいくつかの関連するがまったく同じではない質問: ファイルシステム全体のアトミック移動を概算していますか? 私のfsはmvアトミックですか? eMMCでファイルとディレクトリをtempfsからext4パーティションにアトミックに移動する方法はありますか https://rcrowley.org/2010/01/06/things-unix-can-do-atomically.html
9 linux  bash  cp 

1
ハードドライブのスリープ時間(7日)をスケジュールすることは可能ですか?
Linux(Debian 9)ボックスに接続されている外付けハードドライブがスリープ状態になる(回転が停止する)タイミングをスケジュールする方法を探しています。 これをコンテンツに組み込むには、マルチメディアサーバーとして動作するLinuxボックスがあります。外部ハードドライブにあるコンテンツをフェッチするための呼び出しが行われると、ハードドライブが起動して回転を開始するまでに15〜30秒かかることがよくあります。ハードドライブを24時間365日起動して回転させるように設定することもできますが、ほとんどの場合、自宅にいるときにのみマルチメディアサーバーを使用すると、これは無駄になります。 ハードドライブが回転しているときの週次スケジュールを設定するために使用できるソフトウェアツールまたはコマンドはありますか(例:月曜から金曜は午後5時から午後11時までの回転)土曜から日曜は午後3時から午後11時までの回転。システムタイマー

4
ループと拡張のパフォーマンス
以下の比較に関する専門家の提案が必要です: ループを使用したコードセグメント: for file in `cat large_file_list` do gzip -d $file done 単純な拡張を使用したコードセグメント: gzip -d `cat large_file_list` どちらが速くなりますか?大きなデータセットを操作する必要があります。

2
条件式の「set -e」での「eval」の動作
コマンドを検討する eval false || echo ok echo also ok 通常、我々はこれを実行するために期待するfalseユーティリティをして、終了ステータスがゼロであることから、その後、実行するecho okとecho also ok。 すべてのPOSIXのような私が使用してシェルでは(ksh93、zsh、bash、dash、OpenBSDのksh、とはyash)、これは何が起こるかですが、私たちは有効にした場合、物事は面白くset -e。 set -eが有効な場合、OpenBSD shとkshシェル(どちらもから派生pdksh)は、の実行時にスクリプトを終了しますeval。他のシェルはそれを行いません。 POSIXは、特殊な組み込みユーティリティ(などeval)のエラーにより、非対話型シェルが終了するはずであると述べています。実行がfalse「エラー」を構成するかどうかは完全にはわかりません(もしそうなら、それはset -eアクティブであることとは無関係です)。 これを回避する方法evalは、をサブシェルに置くことです。 ( eval false ) || echo ok echo also ok 問題は、POSIXに準拠した正しいシェルスクリプトでそれを実行する必要があるかどうか、またはOpenBSDのシェルのバグかどうかです。また、上記にリンクされているPOSIXテキストの「エラー」とはどういう意味ですか? 余分な情報:OpenBSDシェルは 、コマンドのecho ok有無にかかわらず両方を実行しますset -e eval ! true || echo ok 私の元のコードは次のようになりました set -e if eval "$string"; then echo …
9 posix  openbsd  eval 

1
知らないうちにターミナルで無限ループを実行しました
以下のコードをランダムソースからターミナルにコピーして実行しました。 while sleep 1; do tput sc; tput cup 0 $(($(tput cols)-29)); date; tput rc; done & コードは、端末の右上隅に実行中の時計を表示することです。スニペットは非常にうまく機能し、私が望んでいたことを正確に実行しましたが、今はこのループを終了して時計を取り除きたいだけです。 また、上記のコードを理解する必要があります。tputコマンドが何をするのか知っているので、いくつかのアイデアがありますが、それでも接続できないドットがたくさんあります。
9 terminal 



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