2011-06-20 12 views
6

EC2 siteleri veritabanını ve html'yi S3'e yedeklemek için her gece çalışan bir kabuk komut dosyası var ve bu klasörleri yedeklediğinde, daha kolay görüntüleme için tarihe ekler. Ancak, ilgili yedekleme klasörlerini de 3 gün öncesinden silebilmeyi istiyorum. 3 gün önce tarihi almak için hesaplamaları nasıl yapabilirim?Kabuk Betimlemede tarih hesaplamaları nasıl yapılır?

#!/bin/bash 
DATE=`date +%m%d%Y` 

s3cmd put -r /var/lib/mysql/mydb/ s3://mybucket/mydb-$DATE/ 
s3cmd put -r /home/ec2-user/public_html/ s3://mybucket/public_html-$DATE/ 
s3cmd del -r s3://mybucket/mydb-(date 3 days ago) 

cevap

7

Sen tarih komutu için -d bayrağını kullanabilirsiniz:

DATE=`date +%m%d%Y -d "3 days ago"` 
:

-d, --date=STRING 
    display time described by STRING, not 'now' 

Yani, sadece tarih değişkeni değiştirmek

2

Neden dizinlerin değişiklik zamanını kullanmıyorsunuz? Sonra onları bulmak için sadece arayabilirsin. xmaple için:

find backups -maxdepth 1 -mtime 3