• ベストアンサー

/から圧縮したい

ソラリスが動いているサーバーのデータのバックアップをしようと思っています。 テープデバイス以外の方法をご存知でしたら 教えていただきたいんです。 今やろうとしているのが tar.gzへの圧縮なんですが まとめて圧縮できないかと悩んでおります。 全データを一つにまとめて圧縮なんてできるんでしょうか? コマンドだとファイル名をbackup.tar.gzにするとして tar cvfz backup.tar.gz /  になるのですか?? よろしくお願いします。

  • koozou
  • お礼率91% (164/179)

質問者が選んだベストアンサー

  • ベストアンサー
  • xjd
  • ベストアンサー率63% (1021/1612)
回答No.2

>なぜufsdumpではないかというと、linuxでも読める状態にしておきたいからです。 >それとソラリスが扱えるファイルの最大サイズってどのくらいなんでしょうか? それなら、Linuxが扱えるファイルサイズを心配する必要があるのでは? Linuxの種類にも依りますが、open()システムコールのファイルオフセットは、 2の32乗=4GB、または2の(32-1)乗=2GB です。 Linuxで読める大きさにまとめるなら、 /上のディレクトリを指定して、tarで固める事をお勧めします。 tarで固める時は相対パスを指定してください。絶対パスを指定すると 解凍する時に、既存のファイルシステムを上書きしてしまいます。 # man 2 open OPEN(2)  System calls                OPEN(2) NAME     open, creat - open and possibly create a file or device SYNOPSIS     #include <sys/types.h>     #include <sys/stat.h>     #include <fcntl.h>     int open(const char *pathname, int flags);     int open(const char *pathname, int flags, mode_t mode);     int creat(const char *pathname, mode_t mode); 途中省略 これ→ O_LARGEFILE      On 32-bit systems that support the Large Files System,      allow files whose sizes cannot be rep      resented in 31 bits to be opened.

koozou
質問者

お礼

そうでしたね。Linuxの扱えるサイズにも気をつけないといけないですよね。ご指摘ありがとうございました。

その他の回答 (1)

  • xjd
  • ベストアンサー率63% (1021/1612)
回答No.1

>コマンドだとファイル名をbackup.tar.gzにするとして >tar cvfz backup.tar.gz / とりあえず、その実行方法は可能です。問題点は、 ・途中でディスクがパンクしないか? ・tar中に、ファイルがSolarisが扱える最大サイズを超えないか? ファイルにバックアップするなら、 ufsdumpでファイルシステム毎(スライス単位)でバックアップ されることをお勧めします。

koozou
質問者

お礼

そうですよね。ディスクの容量の問題もありますよね。 全然思いつきもしませんでした。 なぜufsdumpではないかというと、linuxでも読める状態にしておきたいからです。ufsdumpだとlinuxで使えないと思うので。 それとソラリスが扱えるファイルの最大サイズってどのくらいなんでしょうか?

関連するQ&A

  • cronからtarで圧縮しようとすると、途中で終わってしまいます

    サーバーはCentOS 5.3です。 以下はroot権限での話です。 コマンドラインで /bin/tar cvzf /home/myhome/backup/var_backup.tar.gz /var と打ち、実行すると正しく圧縮されたファイルが出来上がります。 解凍してみても問題ありません。 大きさは700MBくらいになります。 ところが同じコマンドをCronにセットして実行すると、ファイルはできるのですが 254K というとても小さなファイルが出来上がって終わってしまいます。 解凍してみるととても中途半端なところで圧縮が終わっているみたいです。 5 0 * * * /bin/tar cvzf /home/myhome/backup/var_backup.tar.gz /var のように書いています。 rootのcrontabなので権限の問題ということも無いと思うのですが。 別のディレクトリでも試してみたのですが同じ結果でした。 別のサーバーで同じくCentOS5.3を使っていて、同じことをやっているのですが そちらはうまく行っているのです。 どなたか解決策などご存知でしたら教えてください。 同じような質問が過去にもあったようなのですが、未解決で終わっていました。

  • tar.gz圧縮のファイルサイズについて

    レンタルサーバCPIにて、 公開ディレクトのWebデータを圧縮してバックアップをとりたいと思い、 tar.gz圧縮のスクリプトを書いてcronで自動実行(1日1回)させています。 生成されたデータをみると、 公開ディレクトリのファイル数やフォルダ数は同じにも関わらず、 tar.gzの圧縮ファイルのファイルサイズが毎回異なっているのですがこれはtar.gzの仕様でしょうか? コマンドは下記となります。 tar -czf /usr/home/*****/webdata.tar.gz /usr/home/*****/html/; お分かりの方、ご教示頂ければと思います。 どうぞよろしくお願いいたします。

  • 圧縮に成功しているか?

    tar cvzf で大量のデータを圧縮したのですが、 解凍コマンドを実行せずに、 圧縮に成功しているかは、どのようにして調べるのでしょうか? また、バックグラウンドでの実行は、 tar cvzf after.tar.gz befor & で有っていますでしょうか?(実行しても、echoされるんです;_;) OSはFreeBSDです。

  • ubuntuでバックアップデータをメールに添付して送りたい

    バックアップしたデータをtar.gz形式にしたものを、メールに添付して外部へ送りたいと考えているのですが、うまくいきません。 コマンドラインより /usr/bin/uuencode /var/www/backup/data.tar.gz sdata.tar.gz | mail -s 'backup' test@test.co.jp のような形で実行すると、エラーメッセージもでないのですが、メールも届きません。 そもそも、メールが届く環境を構築できているのかすらわからなくなってきてしまいました。 コマンドラインよりどのようなコマンドを打てば確認できますか? 初歩的な質問ですみません。

  • tar -zcvfコマンドでの圧縮について

    MRTGデータをバックアップするサーバの移行(サーバB→C)をしていますが、 MRTGデータを取得して圧縮した時の容量の差を疑問に思っています。 なぜか2倍になってしまいます。 解凍するとデータは同じ容量です、 データを取得するShellはまったく同じものを使用していますし、 取得するデータの内容も変わらないと思います。 データ圧縮の差はOSの差、tar,gzipパッケージの差、ハードの差? 何が原因なのでしょうか? 勉強不足で申し訳ありませんが、教えて頂けたら幸いです。 よろしくお願いします。 MRTGサーバAのデータをサーバBでバックアップすると約50MB(tar.gzで固める)⇒解凍すると約200MB MRTGサーバAのデータをサーバCでバックアップすると約100MB(tar.gzで固める))⇒解凍すると約200MB サーバ情報 サーバA MRTGツールにてデータ取得 Red Hat Enterprise5.3 サーバB MRTGデータバックサーバ SunOS 5.10 サーバC MRTGデータバックサーバ SunOS 5.9 

  • ◆圧縮&伸張コマンド

    いつもお世話になっています。 Linux初心者です。 Linuxコマンドでの圧縮系はtar + gzipが一般的なのでしょうか? (他に手軽&圧縮率が高いのがあればご教授下さい) 【実行したい事】 定期的に動いているcronがあります。wgetで取得したファイル群(フォルダ含め)を取得後に圧縮をかけたい。で、次回のwgetをかける前に今度はファイル群(フォルダ含め)を元に戻したい。 cron ⇒ 伸張&展開(ファイル群) ⇒ wget ⇒ 圧縮(ファイル群。元ファイル群は削除) ⇒ cron お手数ですが、解凍 & 圧縮のサンプルコマンドをご教授下さるとありがたいです。 ↓↓↓こんな感じで問題ないのでしょうか? 伸張&展開: tar xvzf ***.tar.gz 圧縮&アーカイブファイル:tar cvzf ***.tar.gz dir(各フォルダ&ファイル群) wgetで-nc(取得済みは取らない)を使用しているので、ちゃんと元に戻って欲しい(当たり前ですが。。。)のとファイル群の容量が大きいので手軽に圧縮させたい。

  • tar.gzファイルのリストアについて

    Postgres初心者です。 教えてください。 pg_dumpコマンドでdump拡張しのバックアップファイルを生成し、 tarコマンドで****.tar.gzファイルに圧縮しました。 このtar.gzのファイルを直接リストアするコマンドがあれば 教えていただけないでしょうか? -bash-3.2$pg_restore -U postgres -d (データベース名) < ****.tar.gz と実行すると、以下のエラーメッセージが表示されます。 →pg_restore: [アーカイバ] 入力ファイルが有効なアーカイブではないようです。 -bash-3.2$gunzip -C ****.tar.gz | pg_restore -d (データベース名) と実行すると、以下のエラーメッセージが表示されます。 →pg_restore: [tarアーカイバ] tarアーカイブ内でファイルtoc.dat用のファイルヘッダがありませんでした よろしくお願い致します。

  • perl で gz 圧縮する方法

     よろしくお願いします。  Perlで、次のようなプログラムを作ることになっています。 1 インターネット上からとあるファイル(容量はだいたい15kb程度、画像ファイルとか音声ファイルではありません)をダウンロードする。 2 このファイルをgz形式で圧縮する。 3 ファイル名を変更する。  この作業を多数回行う必要がある関係で、プログラムを組んでいます。  この点、1と3のプログラムは書けたのですが、2の部分が分からなくて困っています。 いろいろインターネットで検索したところ、「Archive::Tar;」を使っていると説明しているサイトがあって、それを参考にプログラムを組んでみました。  次のようなプログラムを組んでみましたが、gz形式に圧縮されないようです(圧縮されたファイルを再び解凍してみたところ、元のファイルに戻らなかった)。 use Archive::Tar; my $tar = Archive::Tar->new(); $tar->add_files( $newfilename1 ); $tar->write( $newfilename2 , 3 ); ( $newfilename1 はダウンロードしたファイル名、$newfilename2 は gz形式に圧縮したファイルの名前です)  この4行のプログラムは正しいのでしょうか?  間違っているのであれば、どこを直せばよいでしょうか?  よろしくお願いします。

  • 差分バックアップのコマンド

    今使用しているサーバのバックアップに 毎日フルバックアップで二時間もかかるんで 差分バックアップに変えようかなーとか 思ってるんですが、下のコマンドってあってます? time find /home/data -mtime -1 ! -type d -print | tar cfz /home/backup/test/backupdata-`date +%Y%m%d`.tar.gz ちなみに当日変更・新規作成したものだけバックアップしたいです。 dumpとかがいいんでしょうけど、できればtarでやりたいんです。 教えてくださいお願いします。

  • htmlファイルだけをtar圧縮したい

    フォルダ以下の全てのファイルをtar圧縮する際に、htmlファイルのみを圧縮したいのですが、どのようなコマンドを入力すればよいでしょうか…? また、それが不可能なら~バイト以下のファイルでも構いません。 どのような状況かと申しますと、サーバのデータを全て圧縮しようとしたところ、動画などのファイルが重すぎて圧縮に時間をかけてしまうため、 必要なhtmlファイルのみを抽出し、圧縮したいと考えている次第です。 どうかご教示お願いいたします。