Thêm dòng vào cron từ tập lệnh


Câu trả lời:


49

Bạn có thể lặp lại dòng vào cuối của người dùng hiện tại crontab như thế này:

#!/bin/bash

line="* * * * * /path/to/command"
(crontab -u userhere -l; echo "$line" ) | crontab -u userhere -

+1 vì bạn đã đánh bại tôi (Tôi đã gặp lỗi script khi kiểm tra: D). 1 điều bạn cần thêm Tôi nghĩ: hệ thống cần được thông báo cronđã được thay đổi.
Rinzwind

Tôi biết đây sẽ là một cuộc đua để được trả lời! Bạn đúng trong đó cron không cần phải được thông báo. Đây là lý do tại sao bạn không thể lặp lại lệnh đến cuối crontab. Tôi đã kiểm tra rằng đoạn script trên không hoạt động và cron bắt đầu chạy lệnh.
Richard Holloway

13
Ồ và tôi nghĩ điều này cũng có lỗi nếu crontabngười dùng đó chưa tồn tại (?)
Rinzwind

7
Nó cảnh báo bạn rằng người dùng crontab không tồn tại, nếu đó là trường hợp, nhưng sau đó nó sẽ tạo ra nó. Tôi đánh giá cao ý kiến ​​của bạn là sâu sắc.
Richard Holloway

3

Nếu bạn muốn chỉnh sửa một giá trị trong crontab của mình, bạn có thể làm gì đó dọc theo dòng:

$ crontab -l | sed -e 's/foo/bar/' | crontab -

Rõ ràng bạn cần cẩn thận với sự thay thế của mình để chắc chắn rằng nó chỉ phù hợp với (các) dòng bạn muốn thay đổi; mặt khác, tất cả foosđược thay đổi thành bars(trong ví dụ này).

Ưu điểm của phương pháp này là bạn không thay thế toàn bộ crontab. (Một cái nhíp ẩn dụ hơn là một chiếc búa tạ.)

Bạn có thể sử dụng bất kỳ lệnh chỉnh sửa thay vì sed . Ví dụ: nếu bạn muốn sử dụng ed để chỉnh sửa một dòng bắt đầu như thế này:

2 * * * * /sbin/flitch --days 3,4 > /var/log/flitch.out 2>&1

Giả sử dòng này nằm trong số nhiều dòng hoặc bạn có nhiều crontab khác nhau để cập nhật trên các hệ thống khác nhau và bạn chỉ biết dòng của bạn sẽ là dòng duy nhất có thuật ngữ flitchtrong đó.

Nó có thể trông giống như:

$ cat /tmp/edscript
/flitch
s/3/9/
w
q
$ crontab -l > /tmp/out && ed /tmp/out < /tmp/edscript && crontab - < /tmp/out
$ crontab -l
...
2 * * 1 * /sbin/flitch --days 9,4 > /var/log/flitch.out 2>&1
...

Bây giờ tôi phải thừa nhận rằng gần như 100% thời gian sed sẽ làm những gì ed sẽ làm, nhưng thật tốt khi có một công cụ bổ sung trên con dao quân đội Thụy Sĩ. ^. ^

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.