Yandex Cloud
Search
Contact UsGet started
  • Blog
  • Pricing
  • Documentation
  • All Services
  • System Status
    • Featured
    • Infrastructure & Network
    • Data Platform
    • Containers
    • Developer tools
    • Serverless
    • Security
    • Monitoring & Resources
    • ML & AI
    • Business tools
  • All Solutions
    • By industry
    • By use case
    • Economics and Pricing
    • Security
    • Technical Support
    • Customer Stories
    • Start testing with double trial credits
    • Cloud credits to scale your IT product
    • Gateway to Russia
    • Cloud for Startups
    • Education and Science
    • Yandex Cloud Partner program
  • Blog
  • Pricing
  • Documentation
© 2025 Direct Cursus Technology L.L.C.
Yandex Compute Cloud
    • All guides
      • Creating a snapshot
      • Getting information about a disk snapshot
      • Deleting a snapshot
      • Creating a snapshot schedule
      • Getting information about a disk snapshot schedule
      • Changing a snapshot schedule
      • Disabling and enabling a snapshot schedule
      • Encrypting an image
      • Configuring disk snapshot access permissions
      • Configuring snapshot schedule access permissions
      • Deleting a snapshot schedule
    • Viewing operations with resources
  • Yandex Container Solution
  • Access management
  • Terraform reference
  • Monitoring metrics
  • Audit Trails events
  • Release notes

In this article:

  • Setting up an automatic disk snapshot schedule
  • Examples
  • Daily snapshots
  1. Step-by-step guides
  2. Disk snapshots
  3. Creating a snapshot schedule

Creating a disk snapshot schedule

Written by
Yandex Cloud
Improved by
Danila N.
Updated at May 5, 2025
  • Setting up an automatic disk snapshot schedule
  • Examples
    • Daily snapshots

Setting up an automatic disk snapshot scheduleSetting up an automatic disk snapshot schedule

To set up an automatic disk snapshot schedule:

Management console
CLI
Terraform
API
  1. In the management console, select the folder containing the disk.

  2. Select Compute Cloud.

  3. In the left-hand panel, select Snapshots.

  4. In the Snapshot schedules tab, click Create.

  5. Configure schedule parameters:

    • Enter a name for your schedule in the following format:

      • It must be from 2 to 63 characters long.
      • It may contain lowercase Latin letters, numbers, and hyphens.
      • It must start with a letter and cannot end with a hyphen.
    • Provide a description for the schedule, if required.

    • Select the disks to create scheduled snapshots for. You can add multiple disks to a single schedule, and you can add a single disk to multiple schedules as long as you stay within the limits.

      You can create snapshots of network disks and drives, such as HDDs, SSDs, and non-replicated SSDs, as well as ultra high-speed network storages with three replicas (SSD).

      For non-replicated SSDs and ultra high-speed network storages with three replicas (SSD), the snapshot time is not determined.

      To create snapshots of local disks residing on dedicated hosts, use Yandex Cloud Backup. This service supports Ubuntu, CentOS, CentOS Stream, and Windows Server.

    • In the Create snapshots field, select the snapshot frequency: By hour, By day, By week, or By cron expression. The snapshot creation time is specified in UTC±00:00.

    • In the Starting on field, set the start date for your schedule.

    • Select the snapshot retention policy:

      • Store all snapshots: Enable to retain all snapshots created by this schedule.
      • Only the last: Specify the number of the latest snapshots to retain or the number of days for which you want to retain the snapshots. Any other snapshots created by this schedule will be deleted automatically.

      Note

      There are quotas on the number and total size of snapshots in the cloud.

  6. Click Create.

If you do not have the Yandex Cloud CLI yet, install and initialize it.

The folder specified when creating the CLI profile is used by default. To change the default folder, use the yc config set folder-id <folder_ID> command. You can specify a different folder using the --folder-name or --folder-id parameter.

  1. See the description of the CLI commands for managing schedules:

    yc compute snapshot-schedule --help
    yc compute snapshot-schedule create --help
    
  2. Create a schedule using a cron expression:

    yc compute snapshot-schedule create <schedule_name> \
      --expression <cron_expression>
    

    Note

    The snapshot creation time is specified in UTC±00:00.

    If you need to configure a snapshot retention policy, specify the --snapshot-count or --retention-period parameter, such as follows:

    • --snapshot-count 5: Retain 5 latest snapshots.
    • --retention-period 72h: Retain snapshots for the last 3 days.

    To add the start date for a schedule, specify the --start-at parameter, such as follows:

    • --start-at "2022-12-31T16:39:00+05:00": Schedule starts at 16:39 UTC+5 on December 31, 2022.
    • --start-at "2h": Schedule starts two hours before the current time point.

    For more information about the yc compute snapshot-schedule create command, see the CLI reference.

  3. To add disks to your schedule, get disk IDs:

    yc compute disk list --format yaml
    

    Result:

    - id: epdcq9g3co9s********
      folder_id: e1ea8s8l71li********
      created_at: "2022-10-13T14:37:44Z"
    ...
      instance_ids:
        - fhm1c7u23aiq********
      disk_placement_policy: {}
    
  4. Add disks to the schedule:

    yc compute snapshot-schedule add-disks <schedule_name_or_ID> \
      --disk-id <disk_1_ID>,<disk_2_ID>
    

    Result:

    done (3s)
    id: fc8e52mvchb2********
    folder_id: e1ea8s8l71li********
    ...
      expression: 36 14 */1 * *
    snapshot_count: "3"
    snapshot_spec: {}
    

If you do not have Terraform yet, install it and configure its Yandex Cloud provider.

  1. In the Terraform configuration file, define the parameters of the resource you want to create:

    resource "yandex_compute_snapshot_schedule" "default" {
      name = "<schedule_name>"
    
      schedule_policy {
        expression = "<cron_expression>"
      }
    
      snapshot_count = <number_of_snapshots_per_disk>
    
      snapshot_spec {
        description = "<snapshot_description>"
        labels = {
          <snapshot_label_key> = "<snapshot_label_value>"
        }
      }
    
      disk_ids = ["<disk_1_ID>", "<disk_2_ID>"]
    }
    

    Where:

    • name: Schedule name. This is a required parameter.
    • schedule_policy: Section with schedule parameters. It contains the expression field with a cron expression. This is a required parameter.
    • snapshot_count: Maximum number of snapshots per disk. This is an optional parameter.
    • snapshot_spec: Section with additional snapshot parameters. This is an optional parameter. It may contain the following fields:
      • description: Snapshot description.
      • labels: Snapshot label in <key> = "<value>" format.
    • disk_ids: IDs of disks to create snapshots for. This is a required parameter.

    For more information about the yandex_compute_snapshot_schedule resource parameters in Terraform, see the relevant provider documentation.

  2. Create the resources:

    1. In the terminal, change to the folder where you edited the configuration file.

    2. Make sure the configuration file is correct using the command:

      terraform validate
      

      If the configuration is correct, the following message is returned:

      Success! The configuration is valid.
      
    3. Run the command:

      terraform plan
      

      The terminal will display a list of resources with parameters. No changes are made at this step. If the configuration contains errors, Terraform will point them out.

    4. Apply the configuration changes:

      terraform apply
      
    5. Confirm the changes: type yes in the terminal and press Enter.

This will create a schedule in the specified folder. You can check the new schedule and its settings using the management console or this CLI command:

yc compute snapshot-schedule get <schedule_name>
  1. Get a list of disks using the list REST API method for the Disk resource or the DiskService/List gRPC API call.

    You can create snapshots of network disks and drives, such as HDDs, SSDs, and non-replicated SSDs, as well as ultra high-speed network storages with three replicas (SSD).

    For non-replicated SSDs and ultra high-speed network storages with three replicas (SSD), the snapshot time is not determined.

    To create snapshots of local disks residing on dedicated hosts, use Yandex Cloud Backup. This service supports Ubuntu, CentOS, CentOS Stream, and Windows Server.

  2. Create a snapshot schedule using the create REST API method for the SnapshotSchedule resource or the SnapshotScheduleService/Create gRPC API call.

Snapshots will be created and deleted automatically only while the schedule has the ACTIVE status.

ExamplesExamples

Daily snapshotsDaily snapshots

CLI

To set up daily snapshots:

  1. Create a schedule using a cron expression:

    yc compute snapshot-schedule create sched-1 \
      --description "Daily" \
      --expression "10 16 ? * *" \
      --start-at "2022-12-31T19:04:05+03:00" \
      --snapshot-count 7 \
      --labels "machine=file-server"
    

    This will create a schedule with the following parameters:

    • Name: sched-1; description: Daily.
    • Snapshots taken daily at 19:10 Moscow time.
    • Start date: December 31 at 19:04 Moscow time.
    • Last seven snapshots retained.
    • Label: machine; label value: file-server.
  2. Get disk IDs to add them to the schedule:

    yc compute disk list --format yaml
    

    Result:

    - id: epdcq9g3co9s********
      folder_id: e1ea8s8l71li********
      created_at: "2022-10-13T14:37:44Z"
      name: disk-2
      type_id: network-hdd
      zone_id: ru-central1-a
      size: "21474836480"
      block_size: "4096"
      product_ids:
        - f2euv1kekdgv********
      status: READY
      source_image_id: fd88d14a6790********
      instance_ids:
        - ephothb6lppn********
      disk_placement_policy: {}
    - id: fhm7mip40dqh********
      folder_id: e1ea8s8l71li********
      created_at: "2022-10-10T05:00:04Z"
      name: disk-1
      type_id: network-hdd
      zone_id: ru-central1-a
      size: "21474836480"
      block_size: "4096"
      product_ids:
        - f2euv1kekdgv********
      status: READY
      source_image_id: fd88d14a6790********
      instance_ids:
        - fhm1c7u23aiq********
      disk_placement_policy: {}
    
  3. Add disks to the schedule:

    yc compute snapshot-schedule add-disks sched-1 \
      --disk-id epdcq9g3co9s********,fhm7mip40dqh********
    

    Result:

    done (3s)
    id: fc8bplhqmh2b********
    folder_id: e1ea8s8l71li********
    created_at: "2022-10-03T13:28:01Z"
    name: sched-1
    description: Daily
    labels:
      machine: file-server
    status: ACTIVE
    schedule_policy:
      start_at: "2022-12-31T16:04:05Z"
      expression: 10 16 ? * *
    snapshot_count: "7"
    snapshot_spec: {}
    

See alsoSee also

  • Disabling and enabling a disk snapshot schedule.
  • Updating a disk snapshot schedule.
  • Deleting a disk snapshot schedule.
  • Creating a disk snapshot manually.

Was the article helpful?

Previous
Deleting a snapshot
Next
Getting information about a disk snapshot schedule
© 2025 Direct Cursus Technology L.L.C.