diff --git a/backup.py b/backup.py
new file mode 100755
index 0000000000000000000000000000000000000000..93737763dd2b6d747aad2b442256258a8c3d5223
--- /dev/null
+++ b/backup.py
@@ -0,0 +1,74 @@
+#!/usr/bin/env python3
+# ** header v3.0
+# This file is a part of the CaosDB Project.
+#
+# Copyright (C) 2020 Daniel Hornung (d.hornung@indiscale.com)
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
+#
+# ** end header
+
+"""Remote module to create an SQL dump.
+"""
+
+import argparse
+import os
+import subprocess
+import tempfile
+
+
+def create_dump(directory=None):
+    """Create the SQL dump
+
+Parameters via `args` (a dict)
+------------------------------
+dictionary : str
+    If not None, the place to write the SQL dump into.
+
+
+Returns
+-------
+out : str
+    A YAML text representation of the backup process.
+    """
+
+    command = ["./backup.sh"]
+    env = os.environ.copy()
+
+    if not directory:
+        os.makedirs("/tmp/caosdb/tmpfiles/backup/", exist_ok=True)
+        directory = tempfile.mkdtemp(dir="/tmp/caosdb/tmpfiles/backup/",
+                                     prefix="backup.")
+    command.append("--backupdir={}".format(directory))
+    result = subprocess.run(command, cwd=os.path.dirname(__file__), env=env)
+
+
+def parse_args():
+    """Parse the command line arguments."""
+    parser = argparse.ArgumentParser(
+        description=__doc__,
+        prog="mysql backup",
+        formatter_class=argparse.RawDescriptionHelpFormatter
+    )
+    parser.add_argument(
+        '-d', "--directory",
+        help='Directory to which the sql dump will be saved.')
+
+    return parser.parse_args()
+
+
+if __name__ == "__main__":
+    """The main function."""
+    args = parse_args()
+    create_dump(args.directory)