41 lines
1.3 KiB
Python
41 lines
1.3 KiB
Python
#!/usr/bin/env python3
|
|
|
|
import time
|
|
import logging
|
|
from datetime import datetime
|
|
from cve_handler import update_all_vendors
|
|
import config
|
|
|
|
logging.basicConfig(
|
|
level=config.LOG_LEVEL,
|
|
format=config.LOG_FORMAT
|
|
)
|
|
logger = logging.getLogger(__name__)
|
|
|
|
def run_scheduler():
|
|
logger.info("CVE Update Scheduler started")
|
|
logger.info(f"Update interval: {config.UPDATE_INTERVAL_HOURS} hours")
|
|
logger.info(f"Auto-update enabled: {config.ENABLE_AUTO_UPDATE}")
|
|
|
|
time.sleep(120)
|
|
|
|
while True:
|
|
if config.ENABLE_AUTO_UPDATE:
|
|
try:
|
|
logger.info(f"Starting scheduled update at {datetime.now()}")
|
|
updated, failed = update_all_vendors()
|
|
logger.info(f"Update completed: {updated} successful, {failed} failed")
|
|
except Exception as e:
|
|
logger.error(f"Error in scheduled update: {e}", exc_info=True)
|
|
else:
|
|
logger.debug("Auto-update is disabled, skipping")
|
|
|
|
sleep_seconds = config.UPDATE_INTERVAL_HOURS * 3600
|
|
next_update = datetime.now().timestamp() + sleep_seconds
|
|
logger.info(f"Next update scheduled at {datetime.fromtimestamp(next_update)}")
|
|
time.sleep(sleep_seconds)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
run_scheduler()
|