backup 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. #!/usr/bin/env python
  2. from datetime import datetime
  3. import sys
  4. import requests
  5. try:
  6. import urllib.parse as urlparse
  7. except ImportError:
  8. import urlparse
  9. # change base_url to point to your SFTPGo installation
  10. base_url = "http://127.0.0.1:8080"
  11. # set to False if you want to skip TLS certificate validation
  12. verify_tls_cert = True
  13. # set the credentials for a valid admin here
  14. admin_user = "admin"
  15. admin_password = "password"
  16. # get a JWT token
  17. auth = requests.auth.HTTPBasicAuth(admin_user, admin_password)
  18. r = requests.get(urlparse.urljoin(base_url, "api/v2/token"), auth=auth, verify=verify_tls_cert, timeout=10)
  19. if r.status_code != 200:
  20. print("error getting access token: {}".format(r.text))
  21. sys.exit(1)
  22. access_token = r.json()["access_token"]
  23. auth_header = {"Authorization": "Bearer " + access_token}
  24. r = requests.get(urlparse.urljoin(base_url, "api/v2/dumpdata"),
  25. params={"output-file":"backup_{}.json".format(datetime.today().strftime('%w'))},
  26. headers=auth_header, verify=verify_tls_cert, timeout=10)
  27. if r.status_code == 200:
  28. print("backup OK")
  29. else:
  30. print("backup error, status {}, response: {}".format(r.status_code, r.text))