現在、redhat6.2jでフルバックアップを取得するスクリプトを作成しています。

取得先はリモートマシンのDATです。
dumpコマンドを使用して取得すること、どの環境でも利用できるスクリプトを作成することが条件となっているのですが。。。
dumpコマンドでIPアドレス(ホスト名)を指定するところまでは出来たのですが、ファイルシステムを指定するところで悩んでいます。(環境によってファイルシステムの構成が異なるので)
dfコマンドを加工して(ファイルシステムを変数などにして)dumpコマンドに反映させることは可能なんでしょうか??(可能だといわれたのですがやり方が分かりません。。。)

宜しくお願い致します。

A 回答 (1件)

まず dump コマンド自体に、ダンプすべきファイルシステムを選択する -w と


いうオプションがあるようです。

一応、df を使ってどの環境でも動くスクリプトということで、Boune Shell の
スクリプトを考えてみました。
まず df に -t というオプションでファイルシステムのタイプが指定できる
オプションがありますので、swap やら CDROM やらを除外するために
それを利用するとします。
(Linux の df は 複数指定できないような…。FreeBSDではできました。)
あとは `some_command` という記法で some_command を実行した結果が、
その値となることを利用するだけです。
dump のオプションを省略すると、以下になります。
---
#!/bin/sh
for fs in `df -t ext2 | tail -n +2 | awk '{print $1}'`
dodump $fs
done
---
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
質問日から時間が経ってしまっていたので、自分で何とか解決できました。。。

今後の参考にさせていただきます。
ありがとうございました。

お礼日時:2001/02/05 13:11

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

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

QVBスクリプトで指定したコマンドで日付を取得するには?

お世話になります。
VBスクリプトがうまく設定できなくて困っています。
下記は日付取得までです。

rem #*****************************************
Option Explicit
dim w_date

rem #*****************************************
rem # STEP01 パラメータチェック
rem #*****************************************
IF WScript.Arguments.Count = 0 then
WScript.Echo "Parameter_No"
WScript.Quit 99
End IF
IF IsNumeric(WScript.Arguments.Item(0)) = False then
WScript.Echo "Numeric_Check_Error"
WScript.Quit 99
End IF

rem #*****************************************
rem # STEP02 日付計算
rem #*****************************************
w_date = replace(DateAdd("d",WScript.Arguments.Item(0), date),"/","")
WScript.Echo w_date

Script.Quit 0


【前提】
cip△dtコマンドをDOSで打つと例のように出力されます。

【例】
YYYY/MM/DD△00:00:00 cip~~~~~~~
YYYY/MM/DD△00:00:00 cip~~~~~~~

【実現したいこと】
VBスクリプトで、その1行目の日付を取得し、DOSの変数として保持したいです。

【前提】
cip△-dYYYYMMDDをDOSで打つとYYYYMMDDが入力した通りにでます。

【例】
YYYY/MM/DD△00:00:00 cip~~~~~~~

【実現したいこと】
VBスクリプトで、前日の日付を取得し、DOSの変数として保持したいです。

どなたか助けてください。
宜しくお願いします。

お世話になります。
VBスクリプトがうまく設定できなくて困っています。
下記は日付取得までです。

rem #*****************************************
Option Explicit
dim w_date

rem #*****************************************
rem # STEP01 パラメータチェック
rem #*****************************************
IF WScript.Arguments.Count = 0 then
WScript.Echo "Parameter_No"
WScript.Quit 99
End IF
IF IsNumeric(WScript.Arguments.Item(0)) = False then
WScript.Echo "Numeric_C...続きを読む

Aベストアンサー

cip コマンドについて知らないのですが、
コマンド > ファイル名

で標準出力の内容をファイルに保存することができます。
VBScript からは、このファイルから読込すれば、
コマンドの実行結果をVBScript に取り込むことができます。
また、
Set WshShell = CreateObject("WScript.Shell")
Set oExec = WshShell.Exec("コマンド")
のようにすれば、
oExec.StdOut
から標準出力を取り込めます。

ところで、DOSの変数ってなんどすか
環境変数のこと?
バッチ変数のこと?
VBスクリプトで実行しているならVBスクリプトの変数で保持すれば良いように思います。

Qシェルスクリプトでバックグラウンドで実行したコマンドの実行結果を取得するには

OS redhat linux
シェル bornシェル

シェルスクリプトでバックグラウンドで複数のコマンドを実行し、
すべてのコマンドが正常に終了したら次の処理へ進むみたいな事をしたいのですが、可能でしょうか?

直列にすればよいのですが、処理時間短縮の為、並列に処理したいのです。
宜しくお願いします。

Aベストアンサー

バックグラウンドで実行する全コマンドを実行した後、waitコマンドを実行すると良いと思います。
waitコマンド(引数なし)を実行すると、全てのバックグラウンドのコマンドの終了を待ちます。

QRedHatのシェルスクリプトで・・・・

こんにちは。何度もすみません。また質問させて下さい。
RedHat7.0でシェルスクリプトを作成しているのですが、
初心者の為(Linux自体よくわかってません)悪戦苦闘中です。

今回つまづいたのは、

#!/bin/bash

FName=/home/my/aaa.txt
read str1 str2 str3 <$FName

とした時、まず、実行している場所が
/tmp
な為、FNameに/home/myとやるとファイルがありません、
と言われてしまいます。
../home/myでもだめなんですね~・・・どうしてでしょう・・・。

もうひとつ、
aaa.txtの中身に記述されているデータが、空白区切りの時は
うまくstr1 str2 str3に値が入ってくれるのですが、
カンマ区切りデータが入っていると値が入ってくれません。
自分なりに調べて-dを使うと出来るっぽい所までは
わかったのですが、具体的な使い方がいまいちわからないのです。
read str1 str2 str3 <$FName -d,
なんて書いてみたのですが・・・全然だめのようです。
なかなか良いサンプルコードが見つからなくて・・・。

すみませんが、アドバイスいただけたら、と思います。
宜しくお願いいたします。

こんにちは。何度もすみません。また質問させて下さい。
RedHat7.0でシェルスクリプトを作成しているのですが、
初心者の為(Linux自体よくわかってません)悪戦苦闘中です。

今回つまづいたのは、

#!/bin/bash

FName=/home/my/aaa.txt
read str1 str2 str3 <$FName

とした時、まず、実行している場所が
/tmp
な為、FNameに/home/myとやるとファイルがありません、
と言われてしまいます。
../home/myでもだめなんですね~・・・どうしてでしょう・・・。

もうひとつ、
aaa.txtの中身に記述...続きを読む

Aベストアンサー

またお会いしましたね。では、早速。

> FNameに/home/myとやるとファイルがありません

フルパスで書いているのですから、実行している位置には関係ないです。
怪しいのは、読み込もうとしているファイル周りの権限。

/home/my/aaa.txt から中身を読み込む為には、実行ユーザが

・aaa.txt に対して読み込み権限を持っていること
・/home 及び /home/my ディレクトリに実行権限を持っていること

が必要です。


> カンマ区切りデータが入っていると値が入ってくれません

これについては、こんな感じでできます。

IFS=,
read str1 str2 str3 < $FName

bash の man でシェル変数のところに記述がありますので、詳細はそちらを
どうぞ。


> なかなか良いサンプルコードが見つからなくて・・・

一番のお手本は、起動スクリプトですよ。/etc/rc0.d とかの下にあるやつ。
絶対動くって保証もあるし。

Qスクリプト中のexportコマンドの有効範囲

Linuxのスクリプトで、exportコマンドを利用しているのですが、
expoerコマンドの有効範囲についてわかる方がいたらお教えいただけますでしょうか。

有効範囲については、以下のURLを参照しました。
http://www.atmarkit.co.jp/ait/articles/0010/19/news003.html


例えば、
スクリプトAでは、
export HOGE_KEY='abcd'

スクリプトBでは、
export HOGE_KEY='efgh'

というスクリプトがあって、
両方Cronで実行するときに、
スクリプトAの処理中にスクリプトBが実行されても、
スクリプトの中で定義された変数であるから、スクリプトAの処理には
影響しない(スクリプトAではHOGE_KEY='abcd'のまま)との認識で良いのでしょうか。

よろしくお願い致します。

Aベストアンサー

環境変数は、プロセス固有のデータで、異なるプロセス同士では全く独立で、プロセス内で変更しても他のプロセスには影響しません。

ということで、
>影響しない(スクリプトAではHOGE_KEY='abcd'のまま)との認識で良いのでしょうか。
は正しいです。

プロセス生成時には、環境変数の初期値としては、親プロセスの環境変数が引き継がれます(子プロセスで別のプログラムを起動する場合は変更して伝えることも可能)。

Qコマンドプロンプトのスクリプトの意味がわかりません

こんにちは。コマンドプロンプトの意味がわかりません。お教え頂けませんでしょうか?

http://bgworks.info/blog/2007/01/echo_type.html
@echo off
setlocal
set o=a.log
if "%~1"=="" exit /b
cd %1 || exit /b
if exist %o% del %o%
for /r %%a in (*.txt *.htm*) do >> "%~1\%o%" (echo %%a && type "%%a")
endlocal

調べてみて、if exist %o% del %o%までは理解ができました。
次の行の、forループで再帰的に何かをやるところまではわかりましたが、そこからがよくわかりません・・・
ご解説お願い致します!

Aベストアンサー

なんというか「再帰的」の意味を勘違いしているような気もするが, %a に適当なファイル名を放り込んでから考えてください.


人気Q&Aランキング

おすすめ情報