• ベストアンサー

指定ディレクトリ内で2日以内に更新されたファイルをtar圧縮する方法

Linuxで、cronを使って毎日同時刻に、 指定したディレクトリ内のファイルのうち、 2日以内に更新されたファイルのみをtarで圧縮したいと考えています。 tarの-Nオプションを使うのかと思っているのですが、 その場合「2日以内」の指定の仕方がわかりません。 この方法に限らず、 上記の目的を達成できる手段を教えてください。 よろしくお願いします。

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

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

例えば下記のコマンドで、「/var/log 以下で1日以上前のタイムスタンプの*.logというのファイルを探して圧縮する」という動作になります。 /usr/bin/find /var/log -type f -name "*.log" -mtime +1 -exec /usr/bin/gzip {} \; man find でいろいと試してみてください。

biwa_nya-su
質問者

お礼

findコマンドと組み合わせて圧縮するなんてことができるんですね。 目からウロコでした。 ありがとうございました!

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

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

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

  • 圧縮ファイルにパスワード:tarなどにパスワードをかけられますか?

    こんにちは。RedHat 8を使っています。 WindowsのWinzipなどは、圧縮ファイルに対してパスワードをかけられますが、これをLinuxで実現できるでしょうか? tarのオプションでパスワードを設定できるとか、... リムーバブルメディアなどにあるファイルが他人に見られないようにしたいので、OSのアクセス権による制限では足りなくて。 どなたかご存知のかた、教えてください。

  • tarで圧縮したファイルの解凍時の保存先指定

    こんにちは、tarについてご教授ください。 tar czvf /home/hoge/test.tar.gz /home/hoge/testdir ↑の様に圧縮したとします。 これを同じ場所に解凍したいのです。 /home/hoge/test.tar.gz を /home/hoge/ のディレクトリの中から下記の様に解凍します。 tar zxvf /home/hoge/test.tar.gz すると、/home/hoge/home/hoge/testdir/ に解凍されてしまいます。 試しに tar zxvf /home/hoge/test.tar.gz / と言う感じに指定できたら、問題解決なんですが・・・これはできませんでした。 /に移動してからコマンドを発行ということも訳あってできません。 というのもPHPのプログラム上からsystemコマンドで圧縮と解凍をしているのですが、 解凍すると、PHPがあるディレクトリからの相対パスに解凍されてしまいます。 指定した場所に解凍するということはできませんでしょうか? tar --help でみてみたのですが、それらしきオプションは探せませんでした。 zipはまだ使ったことありませんが、こちらを使った方がサーバーへの負荷や扱いやすさでは上なのでしょうか? ご教授お願い致します。

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

  • 時間毎のディレクトリ圧縮&ローテート方法を知りたい

    CentOSにて、特定ディレクトリの圧縮を行い、一定期間バックアップとして保持したいのですが、 うまいことシェルが組めずに困っています。 理想の動作としては、下記のような感じです。 ---------------------------------- ・1時間に1回、特定ディレクトリを圧縮 ・圧縮後のファイルは48時間分サーバに保存 ・48時間を超えたものは自動で削除 ---------------------------------- 現在はシェルとcronを使用し、下記を毎時10分に実行しております。 バックアップの役割は果たしているのですが、手動で削除が必要な状況です。 ---------------------------------- date=`/bin/date +%y%m%d%H` tar cfz $date.tar.gz /home/****/ ---------------------------------- 識者のみなさま、ご教示くださいませ。

  • 指定日時以降に更新されたファイルだけを圧縮したい

    Windowsで指定フォルダ以下の更新されたファイルだけを配布しただ解凍すれば配置できるという圧縮ファイルを作成したいのですが、 1.対象フォルダを指定 2.更新ポイントとなる日時を指定 3.1.2を条件に検索しマッチしたファイルだけをディレクトリ構造を保ったまま圧縮 したいのですが実現できるソフトあるでしょうか? 1.2.はWindowsの検索でOKですが3.が実現できません。

  • tarコマンドの圧縮

    こんにちは。 3ファイルある、ディレクトリ(test)を、tarコマンドでまとめて、 gzipコマンドにて圧縮しました。 そのあと、gzcatコマンドにて、展開して結果をファイルに おとして見たところ、余計なものが付加されます。 見たところ、ディレクトリ名が付加されている感じに、なっており、 出さないようにする方法があれば、教えてください。 【構成】 OS:HP-UX  ディレクトリ:test ファイル:test1(中身は,yuuuuuu 1行のみ) test2(中身は,xxxxxxx 1行のみ) test3(中身は,zzzzzzz 1行のみ) 【圧縮】  1・tarコマンド (tar cvf test.tar test/) 2.gzipコマンド(gzip test.tar) 【解凍】  1.gzcatコマンド(gzcat test.tar.gz > list) 【結果】 1.catコマンド(cat list) test/0040750000000000000000000104357767601770ustar00rootsys0000test/test1000644100000000000000013104364453400126510ustar00rootsys00000000000yuuuuuu test/test200644000000013104364453400126510ustar00rootsys000000000xxxxxxx test/test300644000000013104364453400126510ustar00rootsys000000000zzzzzzz

  • tarでディレクトリのみをアーカイブしたい

    【質問】 Solaris8 純正のtarコマンドで、ファイルを除いてディレクトリのみをアーカイブする良い方法を模索しています。 【背景】 ディレクトリ構成をtarで抽出し、別のマシンで解凍する(/export/homeなど)際に、配下のファイルサイズが大きく時間がかかるため、抽出の際にファイルを除外しておきたい 【前提】 tarでアーカイブする際、ディレクトリを指定すると配下のファイルも再帰的にアーカイブされてしまう。 【詳細】 例えば、以下のようなディレクトリ構造のとき、 AAA/ AAA/aaa/ AAA/aaa/hoge.c BBB/ BBB/foo.txt ディレクトリのみをtarアーカイブして、 AAA/ AAA/aaa/ BBB/ という内容のtarアーカイブを作成するとき、私は以下のようなやり方をしています。 A.全抽出→解凍→ファイル消し→再抽出 # tar cf - AAA BBB | (cd /tmp/work; tar xvf -) # cd /tmp/work # find . -type f -exec rm {} \; # tar cvf /dev/rmt/0 AAA BBB B.除外リスト作成→除外リスト指定で抽出 # find AAA BBB -type f > exclude-list # tar cvfX /dev/rmt/0 exclude-list AAA BBB どちらも結果的にはディレクトリのみ抽出できるので問題はないのですが、ちょっと手間がかかります。コマンドライン1行でできる良い方法があれば教えて下さい。 # そもそも【前提】が私の思い込みかもしれないので、 # 「違うよ」という指摘があればお願いします。

  • tarで、ディレクトリ構造を持たずに、解答する

    tar cvf test.tar .A/B/C .A/B/D とすると、解凍する時に .A/B/というディレクトリ構造で解答されてしまいますよね? そうではなくて、解答したディレクトリにC, Dというファイルだけ解答したいんですけど。 そういうオプションとかってありますか?

  • zipで特定ディレクトリを無視して圧縮

    お世話になります。 いろいろ調べてみたのですが、わからなかったので質問 させてください。 zipに-rオプションを使用して、ディレクトリを丸ごと 圧縮しようとしています。 ですが、そのディレクトリ階層の中にtempというディレクトリ があり、そこにはサイズの大きい一時ファイルが多くあり、 それは圧縮の際に無視したいのです。 そのようなことができるオプションの指定方法はあるでしょうか。 よろしくお願いいたします。

このQ&Aのポイント
  • MDS-940DWで原稿がつまってしまった!紙詰まりではないのにスキャンができないトラブルの解決策をご紹介します。
  • 製品名MDS-940DWのトラブルで原稿がつまる状態になりました。この記事では、トラブルの経緯と解決策を詳しく解説します。
  • MDS-940DWを購入してまだ1回しか使用していないのに、紙詰まりではない状態で原稿がつまってしまう問題について解決策をご紹介します。
回答を見る