指定ディスクの空きディスクの容量を求める処理として、
Windowsでは、Win32::OLE を使って求められることをこちらで教えて頂きました。
http://oshiete1.goo.ne.jp/kotaeru.php3?q=1780512
同様なことをLinuxで実施するにはどうすれば良いでしょうか。
単純には、Linuxでは、dfコマンドなどを``バッククォートで実行して処理すれば良さそうですが、
できれば、Windows/Linux で共通のスクリプトとして書けたらと思っています。
方法があれば、教えてください。よろしくお願いします。
No.1
- 回答日時:
UNIX では、ドライブという概念自体ありませんし、
そのような同じスクリプトは使えないと考えていいと思います。
ですが、
$^O で使用しているOSの名称が得られるので、
OSを判別して内部的に別々の処理を(それぞれのOSに応じたパッケージを呼び出す)するようにし、
表面的には同じ結果を返すというようにすれば良いかと思います。
この回答への補足
BLUEPIXYさん、いつもありがとうございます。
>> $^O で使用しているOSの名称が得られるので、
この仕組みを使って、処理を振り分けることを考えたいと思いますが、
実際に「ディスク容量を求める」という部分については、
##dfコマンドなどを``バッククォートで実行して処理
ということになるでしょうか。
補足、よろしくお願いします。
No.2ベストアンサー
- 回答日時:
この回答への補足
あ、これです!
ご紹介、ありがとうございます。
ということで、素人ながらインストールに挑戦・・・
⇒Linuxは・・・見よう見まねで・・・成功した?感じです(下記)
[/usr/local/src/Filesys] tar xvfz Filesys-DfPortable-0.85.tar.gz
[/usr/local/src/Filesys] cd Filesys-DfPortable-0.85
[/usr/local/src/Filesys/Filesys-DfPortable-0.85] perl Makefile.PL
OS = linux
Checking for statvfs .....
:
Checking if your kit is complete...
Looks good
Writing Makefile for Filesys::DfPortable
[/usr/local/src/Filesys/Filesys-DfPortable-0.85] make
cp DfPortable.pm blib/lib/Filesys/DfPortable.pm
/usr/bin/perl /usr/lib/perl5/5.8.0/ExtUtils/xsubpp -prototypes -typemap /usr/lib/perl5/5.8.0/ExtUtils/typemap -typemap typemap DfPortable.xs > DfPortable.xsc && mv DfPortable.xsc DfPortable.c
:
chmod 644 blib/arch/auto/Filesys/DfPortable/DfPortable.bs
Manifying blib/man3/Filesys::DfPortable.3pm
[/usr/local/src/Filesys/Filesys-DfPortable-0.85] make test
PERL_DL_NONLAZY=1 /usr/bin/perl "-Iblib/lib" "-Iblib/arch" test.pl
1..2
ok 1
ok 2
Results for directory: "/" in bytes:
Total: 10565488640
Free: 9253040128
Available: 8716341248
Used: 1312448512
Percent Full: 13
All tests successful!
[/usr/local/src/Filesys/Filesys-DfPortable-0.85] make install
:
Appending installation info to /usr/lib/perl5/5.8.0/i386-linux-thread-multi/perllocal.pod
⇒Windowsは・・・
ーっと、どうやってインストールすれば良いでしょう?
まさか*.pmファイルをC:\Perl\libにコピーすればOKとか。。。やってみたけどダメでした。 (;.;
ご紹介ありがとうございました。
上記、補足しましたが、Windows環境(2000+ActivePerl v5.8.7です)
へのインストールはどうやって行えば良いでしょうか?
Linuxと同じようにやってみましたが、出来ませんでした。
C:\Perl\work\tar\Filesys-DfPortable-0.85>perl Makefile.PL
OS = MSWin32
Building for Windows ....
Checking if your kit is complete...
Looks good
Writing Makefile for Filesys::DfPortable
C:\Perl\work\tar\Filesys-DfPortable-0.85>make
Makefile:339: *** multiple target patterns. Stop.
→このMakeは、Cygwinのもののようです。
ちょっと質問の方向が逸れてしまいますが、よろしくご教示ください。
No.3
- 回答日時:
#1>##dfコマンドなどを``バッククォートで実行して処理ということになるでしょうか。
それでいいんじゃないでしょうか・というところで、、
#2で、紹介されているDfPortable いいですね♪
やっぱ、すでにあるならそれを使うのがいいんじゃないでしょうか。
やはり、作る前に探せ(大抵は誰かが作っているから)ってことですね。^^
とりあえず、インストールしてみました
Windows の場合、DLLを呼び出すみたいですね。
インストール分かりました!!(教えてもらいました)
C:\Perl\work\Filesys-DfPortable-0.85>ppm
PPM - Programmer's Package Manager version 3.2.
Copyright (c) 2001 ActiveState Corp. All Rights Reserved.
ActiveState is a division of Sophos.
Entering interactive shell. Using Term::ReadLine::Perl as readline library.
Type 'help' to get started.
ppm> install Filesys::DfPortable
====================
Install 'Filesys-DfPortable' version 0.84 in ActivePerl 5.8.7.813.
====================
Downloaded 622 bytes.
Downloaded 2549 bytes.
Downloaded 3997 bytes.
Downloaded 5457 bytes.
Downloaded 7296 bytes.
Extracting 9/9: blib/arch/auto/Filesys/DfPortable/DfPortable.lib
Installing C:\Perl\site\lib\auto\Filesys\DfPortable\DfPortable.bs
Installing C:\Perl\site\lib\auto\Filesys\DfPortable\DfPortable.dll
Installing C:\Perl\site\lib\auto\Filesys\DfPortable\DfPortable.exp
Installing C:\Perl\site\lib\auto\Filesys\DfPortable\DfPortable.lib
Installing C:\Perl\html\site\lib\Filesys\DfPortable.html
Files found in blib\arch: installing files in blib\lib into architecture dependent library tree
Installing C:\Perl\site\lib\Filesys\DfPortable.pm
Successfully installed Filesys-DfPortable version 0.84 in ActivePerl 5.8.7.813.
ppm> q
C:\Perl\work\Filesys-DfPortable-0.85>test.pl
C:\>test.pl
Total bytes: 39958409728
Total bytes free: 12213548544
Total bytes avail to me: 12213548544
Total bytes used: 27744861184
Percent full: 69
#2さんも見てるかなぁ・・・
まとめてで大変失礼しますが、ご教示色々とありがとうございました。助かりました。
No.4
- 回答日時:
Linux でも、次のようにして install するのがお薦めです。
%perl -MCPAN -e shell
>install Filesys::DfPortable
初回なら、まず
>install Bundle::CPAN
をして下さい。尚、/usr/local/lib/perl5/... に書き込み権が要るので、必要ならば sudo するとか。
!思わず、おお!と言ってしまいました。
何度もありがとうございました。
>>必要ならば sudo するとか。
rootユーザで入ってオペしても同じことですよね。
何れにしましても、私自身、目に見えない感覚ですが、Levelがupした実感があります。今日は良い日でした。(^^
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux LINUXでのパーティション追加について 1 2022/12/09 11:15
- UNIX・Linux VirtualBox ゲストOSにPC内蔵HDDのパーティションをマウントする方法は? 2 2023/05/06 22:52
- UNIX・Linux Linuxのパーティションタイプ(MBR/GPT)について 2 2022/07/26 13:35
- その他(パソコン・スマホ・電化製品) LINUXPCに詳しい人に気楽に答えてほしい質問です。 2 2022/10/25 08:07
- Mac OS mac os xの設定の(起動ディスク)にブート用dvdが表示されません 1 2022/05/28 13:29
- UNIX・Linux Linuxサーバーのパーティション・ディレクトリの推奨見積もりについて 3 2023/01/17 00:46
- モニター・ディスプレイ DisplayPort 入力のMSTハブ(Linux対応)を探しています。 Linux を2画面で作 1 2022/11/07 21:10
- UNIX・Linux DisplayPort 入力のMSTハブ(Linux対応)を探しています。 Linux を2画面で作 1 2022/11/07 20:48
- ドライブ・ストレージ 光学ベイに取り付けたSSDからWINDOWS10を起動したい。 10 2023/05/01 18:04
- UNIX・Linux fessカスタマイズ 1 2022/09/27 17:29
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Cからシェルを起動し返り値をハ...
-
ADサーバにおけるログインID,PC...
-
vbs: オブジェクトがコレクショ...
-
Perlスクリプトで文字化けして...
-
perlスクリプトのブラウザURLか...
-
awkの処理速度を改善したい
-
cygwinでcshが認識されず困って...
-
UWSCのスクリプトにラグが発生...
-
Linuxのcronとrc.localでの制御...
-
シェルでsyntax errorがでてしまう
-
ArduinoのジャイロモジュールMP...
-
Excel VBAでリンク切れをチェッ...
-
例外処理のフローチャートの記...
-
エクセルVBAでシートモジュール...
-
ユーザー定義関数に#NAME?が返...
-
VBAで別モジュールへの変数の受...
-
Perlソースコードをコンパイル...
-
モジュールとは何ですか
-
Form間の値の渡し方
-
XML::Parser::Expat が無い?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
"JScript"が見つかりません!
-
Cからシェルを起動し返り値をハ...
-
awkの処理速度を改善したい
-
VBScriptでCurrentDirectoryを...
-
Perlスクリプトで文字化けして...
-
VBSを利用して、IEのタブを自動...
-
シェルでsyntax errorがでてしまう
-
CシェルプログラミングをCygwinで?
-
[ASP]条件によってインクルード...
-
UWSCのスクリプトにラグが発生...
-
pythonスクリプトの停止方法に...
-
VBSで自動ログインについて
-
Perlのライセンス
-
perlスクリプトのブラウザURLか...
-
ADサーバにおけるログインID,PC...
-
TeraTermマクロでの出力キャッチ
-
cygwinでcshが認識されず困って...
-
vbs: オブジェクトがコレクショ...
-
PerlでUNIXのコマンドとパスワ...
-
cronでのPerlスクリプト実行
おすすめ情報