Lệnh với phần trăm ký hiệu không chạy trong crontab


11

Các crontab sau không hoạt động:

# TEST LINE DOES DOT RUN
*/1 * * * * /bin/echo 'test '`/bin/date +%Y-%m-%d` >> /tmp/test

Tôi cũng đã thử bắt đầu với:

SHELL=/bin/bash

Cập nhật: Tôi nghĩ rằng các nhân vật backtick `là nhân vật phản diện, nhưng như câu trả lời dưới đây làm rõ phần trăm% là thủ phạm!


Dòng thử nghiệm của bạn sẽ chỉ chạy một lần mỗi giờ. Đó có thể không phải là những gì bạn dự định thử nghiệm.
dùng535733

Không phải là phút đầu tiên sao? # mh dom mon dow lệnh
lpanebr

Bạn nói đúng .. Tôi đã thay đổi thành * / 1 để làm cho nó chạy mỗi phút. Cron đang chạy tốt. Có một cái gì đó với các lệnh. Nó dường như là/bin/date +%Y-%m-%d
lpanebr

Câu trả lời:


13

Trong /bin/date +%Y-%m-%d, bạn cần phải thoát từng %với \theo trang người đàn ông này :

Trường "thứ sáu" (phần còn lại của dòng) chỉ định lệnh sẽ được chạy. Toàn bộ phần lệnh của dòng, tối đa một dòng mới hoặc% ký tự, sẽ được thực thi bởi / bin / sh hoặc bằng vỏ được chỉ định trong biến SHELL của cronfile. Phần trăm dấu (%) trong lệnh, trừ khi thoát bằng dấu gạch chéo ngược (), sẽ được thay đổi thành ký tự dòng mới và tất cả dữ liệu sau% đầu tiên sẽ được gửi đến lệnh dưới dạng đầu vào tiêu chuẩn.


2
cảm ơn! Tôi sẽ chỉnh sửa câu hỏi để nó phù hợp với vấn đề thực sự.
lpanebr
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.