Làm cách nào để thêm id duy nhất vào tên tệp trong công việc định kỳ?


8

Cronjob của tôi trông như thế này:

5 3 * * * mysqldump -u root test > /srv/backup/mysql_daily.dump

Làm cách nào tôi có thể tạo tên tệp duy nhất cho mỗi lần khi cronjob viết mysql_daily.dump?


2
Hãy dành thời gian để đánh vần tiêu đề đúng. Nó làm cho việc tìm kiếm dễ dàng hơn nhiều cho mọi người.
Mikel

1
Bạn đã viết "Cách thêm id uniqie vào tập tin nime trong công việc định kỳ".
Mikel

Tại sao bạn không sử dụng automysqlbackup?
stoeff

Câu trả lời:


14

Đối với bash, có thể:

... > /srv/backup/mysql_daily-$(date -u +\%Y\%m\%dT\%H\%M\%S)Z.${RANDOM}.dump

Cá nhân, tôi thường chỉ đặt các lệnh đơn giản trong của tôi crontab. Tôi sẽ đặt nó trong một tập lệnh nhỏ và sử dụng tập lệnh trong crontab. Điều này sẽ có lợi ích của việc không yêu cầu các %nhân vật được trốn thoát (một cạm bẫy crontab phổ biến).

cập nhật làm cho nó ISO 8601 mỗi bình luận @johan

cron


1
Bạn có thể sửa đổi cú pháp chỉ một chút và nó sẽ là định dạng ngày hoàn hảo ISO 8601. [YYYY] [MM] [DD] T [hh] [mm] [ss] Z, vì bạn sử dụng date -u cho UTC, bạn có thể thêm Z sau ngày;). vi.wikipedia.org/wiki/ Kẻ
Johan

3

Thực tiễn chung cho việc này là sử dụng dấu thời gian bằng cách sử dụng date +%sđể tạo ra thứ gì đó hữu ích để đánh dấu tệp (Tôi đã sử dụng giây làm ví dụ nhưng bạn có thể sử dụng bất kỳ định dạng ngày nào). Thật sự không cần thiết phải có một tên tệp thực sự độc đáo miễn là tên tệp không xung đột.

5 3 * * * mysqldump -u root test > /srv/backup/mysql_daily_`date +\%s`.dump

1

Thử

5 3 * * * mysqldump -u root test > /srv/backup/mysql_daily.$(/bin/date +\%Y\%m\%d).dump

sẽ đặt ngày hiện tại ở định dạng YYYYMMDD vào tên tệp.

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.