diff --git a/scripts/upgrade_oniro/upgrade_oniro.py b/scripts/upgrade_oniro/upgrade_oniro.py
index 03400a18eb4157a7989d411ba784591e6b091681..b468cf0759f82ced916eccd70048a478ed3e0172 100644
--- a/scripts/upgrade_oniro/upgrade_oniro.py
+++ b/scripts/upgrade_oniro/upgrade_oniro.py
@@ -64,6 +64,7 @@ dry_run = False
 store_backup = False
 
 # Backup options
+verbose_backup = False
 
 # Restore options
 backup_archive_arg = ""
@@ -101,6 +102,8 @@ def init_script_options():
     
     # TODO Backup subcommand
     restore_parser = subparsers.add_parser("backup", help="Backup Oniro manually.")
+    restore_parser.add_argument("-v", "--verbose", action="store_true",
+                        help="Activate verbose output mode")
 
     # Restore subcommand
     restore_parser = subparsers.add_parser("restore", help="Restore a local backup.")
@@ -123,8 +126,8 @@ def init_script_options():
         dry_run = parsed_args["dry_run"]
         store_backup = parsed_args["store_backup"]
     elif command == "backup":
-        # TODO
-        print("WIP")
+        global verbose_backup
+        verbose_backup = parsed_args["verbose"]
     elif command == "restore":
         global backup_archive_arg
         backup_archive_arg = parsed_args["backup_archive_arg"]
@@ -161,12 +164,14 @@ def backup_oniro():
         for folder in backup_folders:
             f.write(f"{folder}\n")
 
+    print("Oniro backup started")
     archive_name = f"upgrade_oniro_backup-{datetime.timestamp(datetime.now())}.tar.gz"
     with tarfile.open(archive_name, "w:gz") as tar_archive:
         tar_archive.add("backup_folders")
         for folder in backup_folders:
             tar_archive.add(folder)
-            print(f"{folder} has been backed up")
+            if verbose_backup:
+                print(f"{folder} has been backed up")
     
     # Remove the uncompressed copy of backup_folders
     os.remove("backup_folders")