import os, frappe, compileall, re from frappe.utils.backups import scheduled_backup from frappe.utils import now from frappe.utils import get_sites def backup(sites, with_files=False): for site in sites: frappe.init(site) frappe.connect() odb = scheduled_backup( ignore_files=not with_files, backup_path_db=None, backup_path_files=None, backup_path_private_files=None, force=True ) print("database backup taken -", odb.backup_path_db, "- on", now()) if with_files: print("files backup taken -", odb.backup_path_files, "- on", now()) print("private files backup taken -", odb.backup_path_private_files, "- on", now()) frappe.destroy() def main(): installed_sites = ":".join(get_sites()) sites = os.environ.get("SITES", installed_sites).split(":") with_files=True if os.environ.get("WITH_FILES") else False backup(sites, with_files) exit(0) if __name__ == "__main__": main()