rsync qua cron. Làm cách nào để kích hoạt đăng nhập?


8

Tôi đang sao lưu máy chủ từ xa sang máy tính khác bằng rsync.

Trong cron.d Daily tôi có một tập tin với điều này:

rsync -avz -e ssh root@example.com:/ /mybackup/

Nó sử dụng cặp khóa công khai / riêng để đăng nhập. Điều này dường như hoạt động tốt hầu hết thời gian, tuy nhiên, tôi (thật dại dột) chỉ thực sự kiểm tra nó bằng cách xem ngày trên một số tệp quan trọng (MySQL dumps) mà tôi biết thay đổi mỗi ngày. Rõ ràng, một lỗi có thể xảy ra sau tập tin đó.

Đôi khi nó thất bại. Khi tôi chạy thủ công, đôi khi như "thiết lập lại máy khách" đôi khi xảy ra.

Cách tốt nhất để đăng nhập nó là gì để tôi có thể kiểm tra một cách chắc chắn nếu nó hoàn thành hay không? Nhật ký cron không chỉ ra bất kỳ lỗi nào. Tôi chưa thử nhưng trang man rsync trên phiên bản cũ của CentOS trên máy sao lưu không hiển thị tùy chọn --log-file. Tôi đoán tôi có thể chuyển hướng thiết bị xuất chuẩn với> nhưng tôi không thực sự muốn biết về mọi tệp. Tôi chỉ muốn biết liệu tất cả có hoạt động hay không ..

Cảm ơn

Câu trả lời:


13

Tôi nghĩ rằng bạn đã giải quyết câu hỏi của riêng bạn. Nếu bạn chuyển hướng cả thiết bị xuất chuẩn và thiết bị xuất chuẩn sang một tệp, bạn sẽ không nhận được đầu ra cho mỗi lần chuyển rsync tệp - điều này chỉ được tạo nếu bạn đang chạy ở -vchế độ verbose ( ). Hành vi mặc định của rsynclà chỉ tạo ra đầu ra trong trường hợp có lỗi. Vì vậy, bạn có thể làm điều này ...

rsync ... > /var/log/rsync.log 2>&1

... và kiểm tra tệp đó để xem rsync gần đây nhất có thành công hay không. Tôi rõ ràng đang sử dụng >, nó sẽ ghi đè lên tệp nhật ký mỗi lần rsyncchạy.

Bạn cũng có thể tận dụng thực tế là rsyncthoát ra với mã khác không khi chuyển không thành công, vì vậy bạn có thể làm như vậy:

rsync ... || echo "rsync failed" | mail -s 'rsync falied' you@example.com

Cảm ơn. Tôi sẽ cho nó đi. Tôi giả sử tôi nhận được mọi tệp trong nhật ký vì đó là những gì tôi thấy trên màn hình nếu tôi thử bằng tay mà không dài dòng. Điều thư có vẻ tốt.
tetranz

Nếu bạn đang chạy rsync theo cách thủ công mà không có -vcờ và bạn vẫn thấy đầu ra trên mỗi tệp, có gì đó không đúng. Trang man rsync cho biết: "Theo mặc định, rsync hoạt động âm thầm. Một -v sẽ cung cấp cho bạn thông tin về những tập tin nào đang được chuyển và một bản tóm tắt ngắn gọn ở cuối."
larsks

Vâng, đó chắc chắn là những gì đang xảy ra. -v dường như được bật theo mặc định. Tôi vừa thực hiện chuyển hướng nhật ký như bạn đề xuất và nhật ký có một dòng cho mỗi tệp. Tôi không nói bạn sai. CentOS phải được biên dịch rsync khác nhau. Tôi đã thêm loại trừ cho / Proc và / sys.
tetranz

Tôi đang chạy CentOS và rsync hoạt động như được mô tả. Dòng lệnh của bạn thực sự trông như thế nào?
larsks

1
Xem, bạn đang chạy trong chế độ dài dòng. Bạn đã có một -vở đó.
larsks

4

Đưa ra tùy chọn -v và thêm -q. Điều này sẽ chỉ đưa ra các lỗi


1

Có lẽ bạn có thể sử dụng syslog thông qua lệnh: logger .

Tôi chạy script theo cách này:

rsync -v what user@host 2>&1 | logger -t backup

Điều này sẽ ghi vào /var/log/messagesmặc định.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.