Unixのバックアップログを減らす方法

このQ&Aのポイント
  • 現在サーバのバックアップを定期的に行っていますが、生成されたログが85万行以上になっており、70Mを超えています。ログの行数を減らす方法を教えてください。
  • 現在のバックアップログの作成方法では全てのファイルがログとして記録されますが、せめて特定のディレクトリ以下のファイルだけを記録するようにする方法はありますか?
  • バックアップログの大きさを減らすためには、特定のディレクトリ以下のファイルだけを記録するように設定することができます。具体的な方法を教えてください。
回答を見る
  • ベストアンサー

unixのバックアップログを減らしたい

お世話になっております. 現在サーバのバックアップを定期的に行おうと考えております. OSは,RHLでtar.gzで/homeを取るスクリプトを作り, cronで動作させました.そして最後にtarのログを メールにて関係者に送るのですが,生成されたログが 85万行もあり,70Mを超えておりました! そこでログの行数を減らしたいのですが, 現在は, tar zcvf ${HOMEPATH}_a.tar.gz /${HOMEPATH} >>& ${DIRPATH}/home_a_backup_${DATE}.log としております. これだと,全てのファイルがログとして記録されるので, せめて, /home/usrname/xxx くらいで記録は止めたいのです. 何か良い方法はありますでしょうか.  よろしくお願いします.

  • kukky
  • お礼率65% (46/70)

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

  • ベストアンサー
回答No.2

「記録は止めたいです」って、一番大事な最後の結果は興味なしですか(^^? とりあえずvオプション外してみたらいかがでしょうか。 途中の経過は出ませんが、結果は出してくれます。

kukky
質問者

お礼

返信ありがとうございました! これで試してみます.

kukky
質問者

補足

ありがとうございます. vを外すと確かに減りますね. これは途中の結果は無いという事ですか. 良さそうです.

その他の回答 (2)

回答No.3

>/home/usrname/xxx >くらいで記録は止めたいのです. ここの意味がイマイチ読み取れませんが・・。 単純にバックアップする単位を/home配下のディレクトリ毎にする(ユーザが可変であれば、ディレクトリをfindで引っ掛けてクルクル回すスクリプトにする)とか。 あとは、出力されたログファイル自体を圧縮してメールに添付するとか・・。 必要最小限にしたいのであれば、エラーがあった時だけメールを飛ばすようにするとか。 一歩引いた目線で考えればいくらでも考えられると思いますよ。

kukky
質問者

お礼

返信ありがとうございました!

kukky
質問者

補足

説明不足でした,申し訳ありません. /home/user/cad/memo.txt /home/user/data/today/aaaa.doc ... と全てのファイルがログにされるので, 例えば /home/user/data/ /home/user2/cad/ /home/user3/text/ の様に,あるディレクトリ以下はログに 残したくないという意味です. そうするとサイズが減ると思いましたので.

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

grep で必要なものを残すなり sed と uniq でごまかすなりする

kukky
質問者

お礼

返信ありがとうございました!

kukky
質問者

補足

簡単にできたらなぁと思い伺いました. 上記のやり方はいろいろ面倒でしょうか?

関連するQ&A

  • 既存のバックアップを前日の日付にリネーム

    Linuxのシェルの書き方初心者です。 教えてください。 前日バックアップしたファイルはリネームし、過去2日分バックアップとして保存しておくようにしていくにはどのようにしたらいいでしょうか? 以下のものに簡単に追記できるような書き方があれば教えてください。 よろしくお願いします。 #!/bin/sh cd /home/backup tar zcvf sample.tar.gz /var/www/sample

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

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

  • 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を使っていて、同じことをやっているのですが そちらはうまく行っているのです。 どなたか解決策などご存知でしたら教えてください。 同じような質問が過去にもあったようなのですが、未解決で終わっていました。

  • ディレクトリの移動 cd 

    初め、/usr/localにapache-ant-*-bin.tar.gz (/home/usrname/ダウンロード/下にある)を展開しようとして次のコマンドを実行しました。 /usr/local$ tar -xzvf /home/usrname/ダウンロード/apache-ant-*-bin.tar.gz すると cp: ディレクトリ `./apache-ant-1.7.0' を作成できません: Permission denied と出て、できませんでした。次にディレクトリを移動して ~/ダウンロード$ tar -xzvf apache-ant-*-.bin.tar.gz を行い、またディレクトリを移動して /usr/local$ cp -r /home/usrname/ダウンロード/apache-ant-* . のコマンドを実行するとまた cp: ディレクトリ `./apache-ant-1.7.0' を作成できません: Permission denied と表示されて移動させることができません。。 なんででしょうか?お願いします。

  • crontabでtarを実行した際、エラーではないものは出力されずに実行できるコマンドを教えてください

    crontabでシェルスクリプトを立ち上げて自動バックアップをさせているのですが、crontabのレポートメールに tar: Removing leading `/' from member names と出ます。 実行内容は tar zcvf /home/__ArchiveFolder/backup_`date +%Y%m%d`.tar.gz /home/public_html なのですが、サイレントモードで実行というのでしょうか、このメッセージのメールを送られてこないように出来るのでしょうか? 言い換えますと、path名の頭に / があると、展開時に面倒が起こるから、/を取り除いてくれていいのですが、いちいちレポートしなくてもいいので、quietモード(manにはありませんでした)のようにするにはどうしたら良いのでしょうか?

  • 3日以前のバックアップを削除する

    /etc/crontabで以下のbackup.shを毎晩実行するのですが、 3日以前のものは毎回消していく場合は以下のような、 少し初心者的な書き方しか現在分からないのですが、 他にもし良い書き方があれば、教えていただけますでしょうか? よろしくお願いします。 #!/bin/sh DATE_1=`date -d '1 day ago' +%Y%m%d` DATE_2=`date -d '2 days ago' +%Y%m%d` DATE_3=`date -d '3 days ago' +%Y%m%d` if [ test_$DATE_2.tar.gz ]; then mv -f test_$DATE_2.tar.gz test_$DATE_3.tar.gz fi rm -f test_$DATE_3.tar.gz if [ test_$DATE_1.tar.gz ]; then mv -f test_$DATE_1.tar.gz test_$DATE_2.tar.gz fi if [ test.tar.gz ]; then mv -f test.tar.gz test_$DATE_1.tar.gz fi tar zcvf test.tar.gz /usr/local/test

  • Linuxでバックアップのために別のハードにファイルを転送したいです。

    Linuxでバックアップのために別のハードにファイルを転送したいです。 とても困っています。どうか力を貸してください。よろしくお願いします。 下のソースを毎日実行するようにクーロンで設定しています。 下記でコメントアウトしている##ファイル転送##の処理以外は成功しています。 バックアップ用の圧縮ファイル作成と古いファイルの削除が成功しています。しかし、 同じハード内にあるのでハード自体が潰れた場合に備えて別のハードに転送したいです。 Linux初心者で調べながら作成しています。 他に必要な情報があれば教えて下さい。よろしくお願いします。 ----(↓↓↓ソースです↓↓↓)---------------------------------------- #!/bin/sh if [ -x /usr/local/pgsql/bin/pg_dump ]; then today=`date +%y%m%d` filenm="/home/backup/postgres/$1" su postgres -c "/usr/local/pgsql/bin/pg_dump $1 > $filenm$today" tar zcvf $filenm$today.tar.gz $filenm$today chown backup $filenm$today.tar.gz chgrp backup $filenm$today.tar.gz chmod 640 $filenm$today.tar.gz rm -f $filenm$today # remove old backup file oldday=`date --date '1 weeks ago' '+%y%m%d'` rm -f $filenm$oldday.tar.gz ##ファイル転送## # USERNAME='system\\backup' # PASSWORD=●●●●●●●●●●● # HOSTNAME=192.168.●●.●● #ftp -n <<EOL #open ${HOSTNAME} #user ${USERNAME} ${PASSWORD} #binary #cd backup #put $filenm$today.tar.gz #bye #EOL fi exit 0 ----(↑↑↑ソースです↑↑↑)----------------------------------------

  • linux シェルの変数、引数の指定について教えて

    シェルの勉強を始めまして、 ファイルを複合化、解凍するだけのシェルを作ろうと思っています。 fukugo.sh $1 でシェルを実行 /home/allday/log/upload/201701261507(←ログの作られる時間で変わります)aaaaa.tar.gz.e というファイルを$1引数に指定 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー !/bin/sh # # init CWD=$(cd $(dirname $0) && pwd) #cd ${CWD} # if [ -z $1 ] then echo "引数を指定してください" exit fi echo "Start" echo "指定されたtarファイルを複合化します" fukugo-decrypt $1 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー fukugo-decryptは私の会社で使われているtarを複合化するコマンドです(環境変数?) 複合化すると /home/allday/log/upload/201701261507aaaaa.tar.gz というファイルになります。 このできたファイルをシェルに入れる次のコマンドの引数にしたいです。 が最後の.eが無くなるため$1では指定できないと思います。 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー echo "複合化されたファイルを/tmpフォルダに入れておきます" mv /home/allday/log/upload/201701261507aaaaa.tar.gz /tmp/ echo "ファイルを展開します" tar zxvf /tmp/201701261507aaaaa.tar.gz echo "End" ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー 複合化された後の/home/allday/log/upload/201701261507aaaaa.tar.gzや 移動後の/tmp/201701261507aaaaa.tar.gzは変数で設定するとよいと聞いたのですが、 どのように設定すればよいかわかりません。 お分かりになる方、お願いします。 教えてください。

  • cronで定期的にWGETしたい

    今、cronで定期的に、圧縮したバックアップファイルをDLしたいと考えています。 ユーザーはルートで # crontab -e * 20 * * * wget http://URL/backup_dbserver.tar.gz のように書き、毎日20時にDLさせたいのですが、どうやらこれだけ動いていないようです。 何か書き方が間違っているのでしょうか?ご存知の方ご教授お願いします

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

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