Skip to content

Instantly share code, notes, and snippets.

@xntric78
Created March 21, 2016 15:02
Show Gist options
  • Save xntric78/ee23440aa247e89031c1 to your computer and use it in GitHub Desktop.
Save xntric78/ee23440aa247e89031c1 to your computer and use it in GitHub Desktop.
#!/usr/bin/env python
import os
import time
import shutil
import tarfile
import socket
from ConfigParser import SafeConfigParser
import boto
from boto.s3.key import Key
from datetime import datetime, date, timedelta
parser = SafeConfigParser()
parser.read ('/root/scripts/.config')
S3_BUCKET = parser.get('sensorlogs_2_s3','bucket')
PROFILE = parser.get('sensorlogs_2_s3','profile')
s3_conn = boto.connect_s3(profile_name=PROFILE)
s3bucket = s3_conn.get_bucket(S3_BUCKET)
hr = datetime.now().hour
mt = datetime.now().minute
if hr == 00 and mt == 00:
yesterday = date.today() - timedelta(1)
DATETIME = (yesterday.strftime('%a-%d-%m-%Y')).split('-')
else:
DATETIME = (time.strftime('%a-%d-%m-%Y')).split('-')
DATETIMESUB1 = DATETIME[3]+'/'+DATETIME[2]
DATETIMESUB2 = DATETIME[2]+DATETIME[1]+DATETIME[3]+'_'+DATETIME[0].lower()
DATETIMESUB3 = DATETIME[2]+DATETIME[1]+DATETIME[3]
HOSTNAME = socket.gethostname()
SOURCE_PATH ='/var/log/apio_sensorlogs/'+DATETIMESUB1+'/'+DATETIMESUB3+'_'+HOSTNAME+'_sensorlog.log'
TMP_BACKUP_PATH ='/tmp/logsbackup'
if not os.path.exists(TMP_BACKUP_PATH):
os.makedirs(TMP_BACKUP_PATH)
LOCALFILENAME='sensorLogs_'+HOSTNAME+'_'+DATETIMESUB2+'.tar.gz'
try:
with open(SOURCE_PATH) as file:
tar = tarfile.open(os.path.join(TMP_BACKUP_PATH,LOCALFILENAME), 'w:gz')
tar.add(SOURCE_PATH,arcname=DATETIMESUB3+'_'+HOSTNAME+'_sensorlog.log')
tar.close()
local_file_path = os.path.join(TMP_BACKUP_PATH,LOCALFILENAME)
k = Key(s3bucket)
s3_file_name = os.path.basename(local_file_path)
fullkey = os.path.join(DATETIMESUB1+'/'+s3_file_name)
k.key = fullkey
k.set_contents_from_filename(local_file_path)
os.unlink(local_file_path)
except IOError as e:
print "Unable to open file %s" % SOURCE_PATH
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment