go.etcd.io/etcd@v3.3.27+incompatible/contrib/systemd/etcd2-backup-coreos/etcd2-backup.service (about) 1 [Unit] 2 Description=rclone powered etcd2 backup service 3 After=etcd2.service 4 5 [Service] 6 Type=oneshot 7 8 ExecStartPre=/usr/bin/rm -rf ${ETCD_BACKUP_DIR} 9 ExecStartPre=/usr/bin/mkdir -p ${ETCD_BACKUP_DIR}/member/snap 10 ExecStartPre=/usr/bin/echo ETCD_DATA_DIR: ${ETCD_DATA_DIR} 11 ExecStartPre=/usr/bin/echo ETCD_BACKUP_DIR: ${ETCD_BACKUP_DIR} 12 ExecStartPre=/usr/bin/etcdctl backup --data-dir=${ETCD_DATA_DIR} --backup-dir=${ETCD_BACKUP_DIR} 13 ExecStartPre=/usr/bin/touch ${ETCD_BACKUP_DIR}/member/snap/iamhere.txt 14 15 # Copy the last backup, in case the new upload gets corrupted 16 ExecStartPre=-/usr/bin/docker run --rm \ 17 -v ${RCLONE_CONFIG_PATH}:/etc/rclone.conf \ 18 quay.io/coreos/rclone:latest --config /etc/rclone.conf --checksum=${RCLONE_CHECKSUM} \ 19 copy ${RCLONE_ENDPOINT}/%m ${RCLONE_ENDPOINT}/%m_backup 20 21 # Upload new backup 22 ExecStart=/usr/bin/docker run --rm \ 23 -v ${ETCD_BACKUP_DIR}:/etcd2backup \ 24 -v ${RCLONE_CONFIG_PATH}:/etc/rclone.conf \ 25 quay.io/coreos/rclone:latest --config ${RCLONE_CONFIG_PATH} --checksum=${RCLONE_CHECKSUM} \ 26 copy /etcd2backup/ ${RCLONE_ENDPOINT}/%m/ 27 28 [Install] 29 WantedBy=multi-user.target