2016-04-05 11 views
1

Kopyalayan bir cron işi aracılığıyla çalışacak bir bash dosyası oluşturmaya çalışıyorum, daha sonra belirli bir tarihten önceki yerel dosyaları/dizinleri CLI aracılığıyla Amazon S3'e siler.Bash X'den daha eski dosyaları taşımak için Dosya S3

S3 CLI yüklü ve çalışıyor, dosyaları kopyalamak ve silmek için komut dosyasının nasıl yazılacağını bilmiyorum. modifikasyon zaman temelinde eski varsayarsak

cevap

1

find <dir_where_files_reside> -mtime +X | while read line 
do 
aws s3 cp $line s3://<bucket_name>/ 
if [[ $? -eq 0 ]]; then 
rm $line 
fi 
done 
0

Bu, aws kimlik kurulum var varsayarak, bunu yapmalıdır.

#!/bin/sh 
 

 
############################################################################################################## 
 
# 
 
# this script will move any log files that are older than 7 days to s3 
 
# 
 
############################################################################################################## 
 

 
LOG_DIR=/some/log/dir 
 
DAYS_TO_HOLD=7 
 
NOW=`date +%Y%m%d` 
 

 
echo "Starting log cleanup process ..." 
 

 
find ${LOG_DIR} -name "*your_file_pattern_match_here*" -mtime +${DAYS_TO_HOLD} -exec aws s3 mv {} s3://somebucket-that-holds-logs \; >/dev/null 2>&1 
 

 
echo "Log clean up completed"

İlgili konular