【最大10000ポイント】当たる!!質問投稿キャンペーン!

ロックの情報を取得したいのですがどのようなコマンドを実行すればよろしいでしょうか?

ロック
 どのファイルがどのプログラムによってロックされているか?

ご教授の程、宜しくお願いいたします。

A 回答 (1件)

rootでしか実行出来ませんがlsof(8)はどうですかね?



以下のlsofのオンラインマニュアルの抜粋にある通り、lsofを実行し出力のFDの項目を見ればロックされているかどうかが分かります。

------8<-------8<------8<-------8<-------8<------
FD is followed by one of these characters, describing the
mode under which the file is open:

  r for read access;
  w for write access;
  u for read and write access;
  space if mode unknown and no lock character follows;
  `-' if mode unknown and lock character follows.

The mode character is followed by one of these lock characters, describing the type of lock applied to the file:

  N for a Solaris NFS lock of unknown type;
  r for read lock on part of the file;
  R for a read lock on the entire file;
  w for a write lock on part of the file;
  W for a write lock on the entire file;
  u for a read and write lock of any length;
  U for a lock of unknown type;
  x for an SCO OpenServer Xenix lock on part of the file;
  X for an SCO OpenServer Xenix lock on the entire file;
  space if there is no lock.
------8<-------8<------8<-------8<-------8<------

以下、Fedora CORE 3での実行例です。
(たぶん、見難いとは思いますが。。。)
------8<-------8<------8<-------8<-------8<------
# lsof | egrep " [0-9]*[rwu\-][NrRwWuUxX] "
nifd 3563 root 4uW REG 253,0 5 1080653 /var/run/nifd.pid
mDNSRespo 3593 nobody 10uW REG 253,0 5 1080655 /var/run/mDNSResponder.pid
sendmail 3793 root 5wW REG 253,0 33 1080751 /var/run/sendmail.pid
sendmail 3801 smmsp 4wW REG 253,0 50 1084009 /var/run/sm-client.pid
anacron 3905 root 4uW REG 253,0 9 1084745 /var/spool/anacron/cron.daily
anacron 3905 root 5uW REG 253,0 0 1084747 /var/spool/anacron/cron.monthly
atd 3914 root 3uW REG 253,0 5 1084699 /var/run/atd.pid
gconfd-2 4562 lean 12wW REG 253,0 649 214373 /tmp/gconfd-lean/lock/0t1112092337ut33437u500p4562r2059905881k3220550124 (deleted)
------8<-------8<------8<-------8<-------8<------
    • good
    • 0
この回答へのお礼

lsofを使うのですね。私の環境には入っていなかったようなのでインストールして試してみます。
ありがとうございました。

お礼日時:2005/04/01 17:03

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qunixでのファイルロックの方法教えてください

 unixでファイルロックを試みているのですが、うまくいきません。open関数で得たファイル指定子にlockfを用いてみたのですがうまくいきません。ロックはされているようなのですが、他からファイルに書き込みができてしまうのです。
 flockやO_EXLOCKなどは、使えないのです。誰か、「こうすればいい!」といえる方、教えてください。

Aベストアンサー

下記ページが非常に参考になると思います。
ご一読ください。

参考URL:http://tohoho.wakusei.ne.jp/wwwcgi8.htm, http://www.din.or.jp/~ohzaki/perl.htm#File_Lock

Q起動しているサービスを確認するコマンド

初歩的な質問で恐縮ですが、ご教示いただけますと幸いです。

起動しているサービスを確認するために以下の2つのコマンドを打ってみるのですが、結果(出て来るサービス名)が違います。
このコマンドの違いについてご教示いただけますでしょうか。

(1)service --status-all
(2)chkconfig --list

Aベストアンサー

(1)service --status-all

サービスの現在のステータスを調べるコマンド

(2)chkconfig --list

OSのブート時に自動起動するサービスを調べるコマンド

違いが出るのは、
・ブート後に手動あるいは他のコマンドから起動したサービス
・ブート後に手動あるいは他のコマンドから、あるいはエラーで停止したサービス
・ブート後に実行はされるがすぐに停止して常駐しないサービス (ntpdate とか)

あるいは、(1)ではサービス名が表示されない物もあるので、どのサービスがどんなステータス出力をするのか知っておく必要もありますね。(service network statusとか)

Q編集中にロックのかかるエディタってないでしょうか?

vipwみたいに編集中にロックのかかるエディタってないでしょうか?

Aベストアンサー

viもかかりますよ。

Qレッドハットのバージョン確認方法

自分のサーバで使用しているREDHATのバージョン確認はどうすればいいのでしょうか?

more /etc/issue
とやっても英文しか出てきませんでした。

uname -all
でもカーネルのバージョンは出るのですが、REDHATのバージョンは出ませんでした。

Aベストアンサー

> more /etc/issue
> とやっても英文しか出てきませんでした。

その英文にはRedHatのバージョンは書いてなかったのですか?
書いていなかったとしたら、管理者により編集されている可能性
がありますね。

cat /etc/redhat-release

ではいかがでしょう?
やっぱり英文ですけど。

rpm -q redhat-release

でもいいかも

Q片方のテーブルに存在しないレコード取得したい

OracleのSQL文を教えて下さい。

-tableA-
key1,key2
001,1
002,2
002,1
003,2

-tableb-
key1,key2
001,1
002,1

取得したいレコード
002,2
003,2

お願いします。

Aベストアンサー

select * from tableA
where not exists (
select * from tableB
where tableA.key1 = tableB.key1
and tableA.key2 = tableB.key2
);

でどうでしょう?

Qオープンしているファイル数を調べたい

Linux上でオープンしているファイル数(ファイルディスクリプタ数)を調べることは、可能でしょうか?
可能であれば、方法を教えてください。

Aベストアンサー

システム全体でオープンしているファイル数ということでいいですよね?
/proc/sys/fs/file-nr にある3つの数字の内、最初の数字です。
もし個々のプロセスのオープン数ということなら、/proc/プロセス番号/fd/ の下のファイルの数。

参考URL:http://www.atmarkit.co.jp/flinux/special/proctune/proctune02b.html

QNTPで同期が始まらない

こんにちは。
度々すみません、NTPの設定をしましたがどうも同期が始まりません。

「ntpdate 130.69.251.23」と手動同期は成功します。
しかしntpデーモンを起動し1時間以上放置しても同期されません。
※外部タイムサーバー参照としてます

ntp.confは下記のとおりです。
---------------------------------------------------
server 133.100.9.2 # clock.nc.fukuoka-u.ac.jp
server 130.69.251.23
driftfile /var/lib/ntp/drift
---------------------------------------------------

でntpq -pの結果は下記となります。

remote refid st t when poll reach delay offset jitter
==============================================================================
133.100.9.2 .INIT. 16 u - 64 0 0.000 0.000 4000.00
130.69.251.23 .GPS. 1 u 27 64 377 8.015 -99970. 17262.6

同期ができれば「remote」列に「*」が表示されると思っています。
何か設定が足りないでしょうか?。
尚、「/vat/log/message」をtailしてますが特にエラーは無さそうです。

よろしくお願いします。

こんにちは。
度々すみません、NTPの設定をしましたがどうも同期が始まりません。

「ntpdate 130.69.251.23」と手動同期は成功します。
しかしntpデーモンを起動し1時間以上放置しても同期されません。
※外部タイムサーバー参照としてます

ntp.confは下記のとおりです。
---------------------------------------------------
server 133.100.9.2 # clock.nc.fukuoka-u.ac.jp
server 130.69.251.23
driftfile /var/lib/ntp/drift
---------------------------------------------------

でntp...続きを読む

Aベストアンサー

#4のqaaqです。

○ntp.conf 関連
server 行に "iburst" を付けておきましょう。
server ntp.nict.jp iburst <--こんな感じになります。

ntp サーバ起動時の時刻調整の収束時間が早くなります。
http://www.jp.freebsd.org/cgi/mroff.cgi?subdir=man&lc=1&cmd=&man=ntp.conf&dir=jpman-5.4.0%2Fman&sect=0

○ntpdate での時刻調整
ntpdate -b -u [サーバ名] を複数回実行して、"offset の値が0.1以下"になるまで、強制的に時刻調整して下さい。

○ハードウエアclockの修正
hwclock -w コマンドでハードウエアclockを合わせます。
http://www.linux.or.jp/JM/html/util-linux/man8/hwclock.8.html

○ntpdの動作
ntpによる時刻調整は、調整幅が通常128mSと小さいので、1時間は様子をましょう。
2時間程度経過しても、時刻修正の兆候が見られない場合ハードウェアの不良も考えられます。

時刻調整の兆候としては、
・logファイルに 一時間毎に調整したメッセージが書かれる。
Jan 7 21:57:40 ntpd[91145]: offset 0.000994 sec freq -190.802 ppm error 0.000076 poll 8
・ntpq -p の出力の最初の桁に"*,+"が付く。また、reach が377になる。
% ntpq -np
remote refid st t when poll reach delay offset jitter
+192.168.0.102 GPS_NMEA(0) 2 u 3 32 377 0.926 -0.330 0.023
*192.168.0.192 GPS_NMEA(1) 2 u 10 32 377 0.747 -0.336 0.023
192.168.0.9 PPS(1) 2 u 3 32 377 0.757 6.559 0.161


○その他
・PC起動時には、システムクロックを計測してその後の動作の基準にしていますが、
CMOSバッテリ不足やハードウェアに何らかの異常があるととんでもない時刻を示すことがあります。(要修理です)
・BIOSの時計も起動時の初期時刻として使われてしまうので、ある程度合わせておいた方がいいです。

#4のqaaqです。

○ntp.conf 関連
server 行に "iburst" を付けておきましょう。
server ntp.nict.jp iburst <--こんな感じになります。

ntp サーバ起動時の時刻調整の収束時間が早くなります。
http://www.jp.freebsd.org/cgi/mroff.cgi?subdir=man&lc=1&cmd=&man=ntp.conf&dir=jpman-5.4.0%2Fman&sect=0

○ntpdate での時刻調整
ntpdate -b -u [サーバ名] を複数回実行して、"offset の値が0.1以下"になるまで、強制的に時刻調整して下さい。

○ハードウエアclockの修正
hwclock -w コマンドでハ...続きを読む

Qファイルに変更・削除禁止ロックをかける方法

PC上のファイルを読み取り、実行は可能だが編集、削除はできなくするフリーウェアはありませんか?
読み取り専用にすればいいものかと思っていましたが、削除は受け付けてしまうようで・・・
OSはVistaです。よろしくお願いします。

Aベストアンサー

No.2の者です。

管理者グループに所属するユーザは、自由に所有権を取得できます。
ですから、所有権を取得すればACLでアクセス制御をしても無意味になってしまいます。これは仕様です。
おそらく、Everyoneの書き込みを拒否しても、所有権を取得したら書き込みが可能になるんじゃないでしょうか?(試してませんが…)

意図的にファイルを使用中にする方法は、自分で何らかのソフトを作りでもしない限り無理です。それは、正常な状態ではないからです。
あんまりいい方法じゃありませんが、実現する方法を参考に載せておきます。
メモ帳を開き、下記のコードを貼り付けます。

Option Explicit
Dim objFS
Dim objText
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objText = objFS.OpenTextFile("C:\target.txt", 8)
Do
WScript.Sleep(60000)
Loop
objText.Close
Set objText = Nothing
Set objFS = Nothing

コード中の"C:\target.txt"には、ロックしたいファイルパスを入力しておいてください。
これを名前をつけて保存し、ファイル名を「lockFile.vbs」とします。
このプログラムを実行すると、ファイルがロックされます。
スタートアップなどに入れて起動しておけば、ログインした後ずっと使用中になります。
実行ファイル(*.exeなど)の場合は、ロックしてしまうと起動しなくなります。
*.vbsファイルはwscript.exeによって実行されます。終了するときは、タスクマネージャから強制終了してください。
(終了すれば、ロック解除されます)

No.2の者です。

管理者グループに所属するユーザは、自由に所有権を取得できます。
ですから、所有権を取得すればACLでアクセス制御をしても無意味になってしまいます。これは仕様です。
おそらく、Everyoneの書き込みを拒否しても、所有権を取得したら書き込みが可能になるんじゃないでしょうか?(試してませんが…)

意図的にファイルを使用中にする方法は、自分で何らかのソフトを作りでもしない限り無理です。それは、正常な状態ではないからです。
あんまりいい方法じゃありませんが、実現する方法...続きを読む

QwiresharkでパケットモニタするとRetransmissionが多発しているという意味は?

現在、自分で作成したパケット送信クライアントプログラムをテストしており、3秒に1回のタイミングでインターネット上にあるサーバのグローバルipアドレスに対し、TCPパケットを発信させて受信するというテストを行っています。
しかし、3秒に一回データを送っているはずなのに、その間隔10秒とか20秒とか間隔が開いてしまう時があります。

wiresharkというパケットモニタソフトで送信側、受信側共にパケットモニタを行ってみたところ、”Retransmission”が多発しているということがわかりました。(tcp.analysis.retransmissionというフィルタ設定で検索)この現象はある時とない時があります。テストして10日ぐらい経つのですが、このパケットが確認されるのはお昼の12時頃と夕方の6時頃が多いのですが、このことからどのようなことが起こっていると考えられますか?

わかる方いらっしゃいましたらご教授よろしくお願いいたします。

Aベストアンサー

簡単に言うと「トラフィック過多によるパケットの再送が多発している」です。

噛み砕いて言えば「回線が混雑していて、送信したパケットが、他の誰かが送信したパケットと衝突(コリジョンが発生)してパケットが消えた。なので、もう一度、送り直した」と言う事。

>このパケットが確認されるのはお昼の12時頃と夕方の6時頃が多いのですが、このことからどのようなことが起こっていると考えられますか?

「お昼休み、終業時間の6時になると、みんな、メールをチェックしたり、個人的にインターネットを閲覧し、トラフィック過多が起き、回線が異常に混雑する」と言う事が起きていると考えられます。

解消するには以下の方法があります。
・「休み時間も、終業時間後も、プライベートでネットを使うな!」と言う「通達」を全社に出す
・社内LANを、トラフィック過多によるコリジョンが起きないよう高速で帯域のあるネットワークカード、LANハブ、ルーターに変える
・受信側と送信側を、社内LANから(電気的、アドレス的に)独立した別のLANにする

要は「混んでる時間帯なので仕方が無い」って事です。

簡単に言うと「トラフィック過多によるパケットの再送が多発している」です。

噛み砕いて言えば「回線が混雑していて、送信したパケットが、他の誰かが送信したパケットと衝突(コリジョンが発生)してパケットが消えた。なので、もう一度、送り直した」と言う事。

>このパケットが確認されるのはお昼の12時頃と夕方の6時頃が多いのですが、このことからどのようなことが起こっていると考えられますか?

「お昼休み、終業時間の6時になると、みんな、メールをチェックしたり、個人的にインターネットを...続きを読む

QFTPエラー425

FTPで425エラーが出て困っています。
今まで繋がっていたのが突然繋がらなくなりました。
調べてみると20番ポートが遮断されている可能性が高く、
どこで遮断されているか調べる良い方法があれば教えて下さい。

・クライアント
OS:Windows 8.1、ファイアウォール: Norton Inernet Security
・サーバー(AWS)
OS:Red Hat Enterprise Linux Server release 7.1 (Maipo)
ファイアウォール:AWSのネットワークルール設定

接続は出来ていて、lsを打つとエラーになります。
サーバーにTertermでログインしてlocalhostにftpするとlsできるので、
ftpd自体に問題はなさそうです。
また、サーバー側の設定は直しておらず、突如動かなくなったので、
クライアントのファイアウォール設定が変わったのを疑っていますが、
ファイアウォールを一時停止しても解消しませんでした。
どこが悪いか原因を切り分けられるずに困っています。
原因箇所を調べる良い方法があればご教示ください。

FTPで425エラーが出て困っています。
今まで繋がっていたのが突然繋がらなくなりました。
調べてみると20番ポートが遮断されている可能性が高く、
どこで遮断されているか調べる良い方法があれば教えて下さい。

・クライアント
OS:Windows 8.1、ファイアウォール: Norton Inernet Security
・サーバー(AWS)
OS:Red Hat Enterprise Linux Server release 7.1 (Maipo)
ファイアウォール:AWSのネットワークルール設定

接続は出来ていて、lsを打つとエラーになります。
サーバーにTerterm...続きを読む

Aベストアンサー

>FFFTPで繋いでいて拡張オプションのPASVモードにチェックをつけていないのでpassiveモードではないはずですが、

クライアントソフトはActive FTPで接続しようとしているのは間違いないですね。

>WireSharkで見たところ、後ろにPASVと書かれていました。
>Wireshark結果
>3967 345.551600000 52.27.XX.XXX 192.168.0.4 FTP 105 Response: 200 PORT command> successful. Consider using PASV. ← パッシブモードになっている?

良く読んで下さい。単に「Passiveモードでの使用を検討して下さい」というメッセージです。

クライアントソフトはActive FTPで接続しようとしているものの、サーバ側がActive FTPを恐らくサポートしていないので、「Passiveモードに移行してよ」とメッセージを出した。にも関わらずクライアントはPASVコマンドを実行することもなく、LISTコマンドを実行したので「425 Failed to establish connection」、つまり「だぁかぁらぁ、データセション張ってないんだから」と返したわけです。

「Passiveモードでの使用を検討して下さい」というメッセージは柔らかな表現ですが「いいか、俺はPassiveモードしか受け付けないからな。次はPASVコマンドを打てよな。それ以外は知らんからな」と等価です。まぁ、QUITやBINARYやASCII等は受け付けてくれるとは思いますが。

>またサーバーが20番ポートにセッションを張ろうとしている形跡がありませんでした。
>これはPASVモードになっているのでしょうか?

サーバは少なくともPassiveモードしかサポートしていないようです。なので、サーバからクライアントの20/TCPにはコネクションを張らずに、21/TCPでクライアントからのPASVコマンド待ちです。PASVコマンドがクライアントから来れば、21/TCPでEntering Passive Mode (X,X,X,X,A,B)を返しますので、クライアントはサーバの(A*256+B)/TCPポートに対してSYNを送信、所謂3ウェイハンドシェイクでデータセションが繋がるという流れになります。

>FFFTPで繋いでいて拡張オプションのPASVモードにチェックをつけていないのでpassiveモードではないはずですが、

クライアントソフトはActive FTPで接続しようとしているのは間違いないですね。

>WireSharkで見たところ、後ろにPASVと書かれていました。
>Wireshark結果
>3967 345.551600000 52.27.XX.XXX 192.168.0.4 FTP 105 Response: 200 PORT command> successful. Consider using PASV. ← パッシブモードになっている?

良く読んで下さい。単に「Passiveモードでの使用を検討して下さい」というメッ...続きを読む


人気Q&Aランキング