def lambda_handler(event, context): s3 = boto3.resource("s3") s3_client = boto3.client("s3") print("Script starting at %s\n" % (get_timestamp())) to_download = clamav.update_defs_from_s3(s3_client, AV_DEFINITION_S3_BUCKET, AV_DEFINITION_S3_PREFIX) for download in to_download.values(): s3_path = download["s3_path"] local_path = download["local_path"] print("Downloading definition file %s from s3://%s" % (local_path, s3_path)) s3.Bucket(AV_DEFINITION_S3_BUCKET).download_file(s3_path, local_path) print("Downloading definition file %s complete!" % (local_path)) clamav.update_defs_from_freshclam(AV_DEFINITION_PATH, CLAMAVLIB_PATH) # If main.cvd gets updated (very rare), we will need to force freshclam # to download the compressed version to keep file sizes down. # The existence of main.cud is the trigger to know this has happened. if os.path.exists(os.path.join(AV_DEFINITION_PATH, "main.cud")): os.remove(os.path.join(AV_DEFINITION_PATH, "main.cud")) if os.path.exists(os.path.join(AV_DEFINITION_PATH, "main.cvd")): os.remove(os.path.join(AV_DEFINITION_PATH, "main.cvd")) clamav.update_defs_from_freshclam(AV_DEFINITION_PATH, CLAMAVLIB_PATH) clamav.upload_defs_to_s3(s3_client, AV_DEFINITION_S3_BUCKET, AV_DEFINITION_S3_PREFIX, AV_DEFINITION_PATH) print("Script finished at %s\n" % get_timestamp())
def lambda_handler(event, context): start_time = datetime.utcnow() print("Script starting at %s\n" % (start_time.strftime("%Y/%m/%d %H:%M:%S UTC"))) clamav.update_defs_from_s3(AV_DEFINITION_S3_BUCKET, AV_DEFINITION_S3_PREFIX) clamav.update_defs_from_freshclam(AV_DEFINITION_PATH, CLAMAVLIB_PATH) clamav.upload_defs_to_s3(AV_DEFINITION_S3_BUCKET, AV_DEFINITION_S3_PREFIX, AV_DEFINITION_PATH) print("Script finished at %s\n" % datetime.utcnow().strftime("%Y/%m/%d %H:%M:%S UTC"))
def lambda_handler(event, context): start_time = datetime.utcnow() print("Script starting at %s\n" % (start_time.strftime("%Y/%m/%d %H:%M:%S UTC"))) #clamav.update_defs_from_s3(AV_DEFINITION_S3_BUCKET, AV_DEFINITION_S3_PREFIX) clamav.update_defs_from_freshclam(AV_DEFINITION_PATH, CLAMAVLIB_PATH) # If main.cvd gets updated (very rare), we will need to force freshclam # to download the compressed version to keep file sizes down. # The existence of main.cud is the trigger to know this has happened. if os.path.exists(os.path.join(AV_DEFINITION_PATH, "main.cud")): os.remove(os.path.join(AV_DEFINITION_PATH, "main.cud")) if os.path.exists(os.path.join(AV_DEFINITION_PATH, "main.cvd")): os.remove(os.path.join(AV_DEFINITION_PATH, "main.cvd")) clamav.update_defs_from_freshclam(AV_DEFINITION_PATH, CLAMAVLIB_PATH) clamav.upload_defs_to_s3(AV_DEFINITION_S3_BUCKET, AV_DEFINITION_S3_PREFIX, AV_DEFINITION_PATH) print("Script finished at %s\n" % datetime.utcnow().strftime("%Y/%m/%d %H:%M:%S UTC"))
def lambda_handler(event, context): s3 = boto3.resource("s3") s3_client = boto3.client("s3") start_time = datetime.utcnow() print("Script starting at %s\n" % (start_time.strftime("%Y/%m/%d %H:%M:%S UTC"))) shutil.rmtree(AV_DEFINITION_PATH, ignore_errors=True) os.mkdir(AV_DEFINITION_PATH) to_download = clamav.update_defs_from_s3(s3_client, AV_DEFINITION_S3_BUCKET, AV_DEFINITION_S3_PREFIX) print("Skipping clamav definition download %s\n" % (get_timestamp())) # for download in to_download.values(): # s3_path = download["s3_path"] # local_path = download["local_path"] # print("Downloading definition file %s from s3://%s" % (local_path, s3_path)) # s3.Bucket(AV_DEFINITION_S3_BUCKET).download_file(s3_path, local_path) # print("Downloading definition file %s complete!" % (local_path)) retVal = clamav.update_defs_from_freshclam(AV_DEFINITION_PATH, CLAMAVLIB_PATH) if retVal != 0: raise RuntimeError("clamAV update process returned %d" % (retVal)) # If main.cvd gets updated (very rare), we will need to force freshclam # to download the compressed version to keep file sizes down. # The existence of main.cud is the trigger to know this has happened. if os.path.exists(os.path.join(AV_DEFINITION_PATH, "main.cud")): os.remove(os.path.join(AV_DEFINITION_PATH, "main.cud")) if os.path.exists(os.path.join(AV_DEFINITION_PATH, "main.cvd")): os.remove(os.path.join(AV_DEFINITION_PATH, "main.cvd")) retVal = clamav.update_defs_from_freshclam(AV_DEFINITION_PATH, CLAMAVLIB_PATH) if retVal != 0: raise RuntimeError("Refresh clamAV update process returned %d" % (retVal)) clamav.upload_defs_to_s3(s3_client, AV_DEFINITION_S3_BUCKET, AV_DEFINITION_S3_PREFIX, AV_DEFINITION_PATH) print("Script finished at %s\n" % get_timestamp())