Host
{{ run.host.host }}
Status
{{ run.status }}
Type
{{ run.run_type }}
Rsync
{{ run.rsync_exit_code|default:"" }}
{% if can_cancel %}

Run Control

Cancelling a queued run stops it immediately. Cancelling a running run asks the worker to stop and records the cancellation request on this run.

{% csrf_token %}
{% endif %} {% if failure %}

Failure

Category: {{ failure.category|default:"unknown" }}
Summary: {{ failure_summary }}
Hint: {{ failure.hint|default:"" }}
{% endif %} {% if can_manage_control_panel and run.status == "failed" or can_manage_control_panel and run.status == "warning" %} {% if not run.reviewed_at %}

Review Required

Mark this run as reviewed after you have checked the failure or warning and no longer need it in the action queue.

{% csrf_token %}
{% endif %} {% endif %} {% if run.reviewed_at %}

Review

Reviewed: {{ run.reviewed_at }}
Reviewed by: {{ run.reviewed_by|default:"unknown" }}
{% endif %} {% if dry_run_summary %}

Run Progress

Status
{{ dry_run_summary.status }}
Mode
dry run
Files Seen
{{ dry_run_summary.files_seen|default:"unknown" }}
Would Transfer
{{ dry_run_summary.files_would_transfer|default:"unknown" }}
Transfer Estimate
{{ dry_run_summary.transfer_estimate_bytes|filesizeformat }}
Total Size
{{ dry_run_summary.total_file_size_bytes|filesizeformat }}
Link-Dest Saving
{{ dry_run_summary.link_dest_estimated_savings_bytes|filesizeformat }}
{% if dry_run_summary.duration_seconds is not None %}
Duration: {{ dry_run_summary.duration_seconds }}s
{% endif %}
Log: {% if dry_run_summary.log_available and can_manage_control_panel %} Open full rsync log {% elif rsync_log_path %} {{ rsync_log_path }} (missing) {% else %} not recorded yet {% endif %}
{% if dry_run_summary.warnings %}
Warnings:
{% else %}
Warnings: none recorded
{% endif %}
{% endif %} {% if live_progress %}

Run Progress

Status
{{ run.status }}
Mode
backup
Phase
{{ live_progress.phase }}
Rsync PID
{{ live_progress.rsync_pid|default:"" }}
Log Updated
{% if live_progress.log.exists %} {{ live_progress.log.seconds_since_modified }}s ago {% else %} missing {% endif %}
Log Size
{{ live_progress.log.size_bytes|filesizeformat }}
{% if live_progress.snapshot.exists %}
Data Files
{% if live_progress.snapshot.scan_limited %}at least {% endif %}{{ live_progress.snapshot.files }}
Data Size
{% if live_progress.snapshot.scan_limited %}at least {% endif %}{{ live_progress.snapshot.apparent_size_bytes|filesizeformat }}
{% endif %}
{% if live_progress.snapshot.path %}
Snapshot path: {{ live_progress.snapshot.path }}
{% endif %} {% if live_progress.snapshot.scan_limited %}
Progress scan was capped to keep the UI responsive.
{% endif %} {% if live_progress.log.path %}
Log: {% if live_progress.log.exists and can_manage_control_panel %} Open full rsync log {% else %} {{ live_progress.log.path }} (missing) {% endif %}
Log path: {{ live_progress.log.path }}
{% endif %}
Warnings: none recorded
{% endif %}

Timing

Created: {{ run.created_at }}
Started: {{ run.started_at|default:"" }}
Ended: {{ run.ended_at|default:"" }}
{% if execution %}
Worker: {{ execution.worker_host|default:"unknown" }}{% if execution.worker_pid %} pid {{ execution.worker_pid }}{% endif %}
Worker heartbeat: {{ execution.heartbeat_at|default:"" }}
{% endif %}

Snapshot

Snapshot: {% if run.snapshot %}{{ run.snapshot.dirname }}{% else %}{{ run.snapshot_path|default:"" }}{% endif %}
Base: {{ run.base_path|default:"" }}
Rsync log: {% if rsync_log_exists and can_manage_control_panel %} {{ rsync_log_path }} {% elif rsync_log_path %} {{ rsync_log_path }} (missing) {% else %} none {% endif %}

Rsync Log

{% if rsync_log_exists and can_manage_control_panel %}
Open full rsync log
{{ rsync_log_path }}
{% elif rsync_log_path %}
{{ rsync_log_path }} (missing)
{% else %}
No rsync log path recorded yet.
{% endif %}
{% if rsync_log_tail %}
{% for line in rsync_log_tail %}{{ line }}{% if not forloop.last %}
{% endif %}{% endfor %}
{% else %}

No recent rsync log output recorded yet.

{% endif %}