Tôi đã có thể tự động hóa bản sao lưu của mình với Câu hỏi đầu tiên này. Chỉ cần sao chép nó vào một tệp .sh và chạy nó với các đường dẫn của tôi, chạy smoth ngay bây giờ. Sau đó, tôi đã làm theo điều này: https://stackoverflow.com/questions/132955/how-do-i-set-a-task-to-run-every-so-often#133425 Lingon này hoạt động tốt và nó sao lưu mỗi ngày.
Bây giờ, khi tôi làm việc, tôi nhận thấy rằng tôi đã không nghĩ đến việc hết dung lượng đĩa. Tôi nghĩ rằng một giới hạn khó khăn để nói rằng 10 bản sao lưu sẽ tốt đẹp. Tôi có thể liệt kê các ảnh chụp nhanh bằng lệnh này:
restic -r /Volumes/BackupManual/restic-backups snapshots
và đầu ra trông như thế này:
ID Date Host Tags Directory
----------------------------------------------------------------------
dbc3943d 2017-02-07 18:50:47 User.fritz.box /Users/user/Documents
bd355ca9 2017-02-07 19:57:59 User.fritz.box /Users/user/Documents
Có cách nào để đếm Dòng và xóa ID cũ nhất không? đây là lệnh xóa:
restic -r /Volumes/BackupManual/restic-backups forget IDxxxxxx
tôi không biết làm thế nào để tích hợp một lựa chọn như vậy ở đây:
#!/bin/bash
# USER CONFIGURATION:
resticuser=restic
srcdir=/Users/user/data
backupvolume=/Volumes/usb-storage-name
backupdir=${backupvolume}/restic-backups
# Script vars:
longname=$0
shortname=$(/usr/bin/basename "${longname}")
printf '%s %s (%s) running...\n' "$(date -u "+%Y-%m-%d %H:%M:%S")" "${shortname}" "${longname}"
if [[ ! -d "${srcdir}" ]]; then
printf '%s %s does NOT exist.' "$(date -u "+%Y-%m-%d %H:%M:%S")" "${srcdir}" >&2
exit 1
else
if [[ $(mount | grep "${backupvolume}") ]]; then
# See: http://blog.macromates.com/2006/keychain-access-from-shell/
# Parse output of 'security' and set RESTIC_PASSWORD:
export RESTIC_PASSWORD=$(security 2>&1 >/dev/null find-generic-password -ga ${resticuser} |ruby -e 'print $1 if STDIN.gets =~ /^password: "(.*)"$/')
# Run backup, capturing output in case of error:
output=$(restic -r ${backupdir} backup "${srcdir}")
error=$?
if [[ "${error}" == "0" ]]; then
printf '%s Restic backup completed successfully.\n' "$(date -u "+%Y-%m-%d %H:%M:%S")"
else
printf '%s Restic backup failed: error code: %s, error: %s\n' \
"$(date -u "+%Y-%m-%d %H:%M:%S")" "${error}" "${output}" >&2
fi
else
printf '%s %s is NOT mounted.' "$(date -u "+%Y-%m-%d %H:%M:%S")" "${backupvolume}" >&2
exit 1
fi
fi
printf '%s %s ended.\n' "$(date -u "+%Y-%m-%d %H:%M:%S")" "${shortname}"
tôi chỉ ghi lại rằng restic hỗ trợ xóa bằng các chính sách. Vì vậy, tôi không cần kiểm tra và sắp xếp mà thay vào đó hãy thêm một số giá trị để định cấu hình và kiểm tra chính sách khi tôi thực thi tập lệnh ...
—
novski
wc -l
để đếm các ion và sử dụnggrep/cut/awk/perl/...
để trích xuất ID.