Điểm:1

Cronjob is not running properly but work while run command (./)

lá cờ in

I have this script for file testfile.sh:

SEND_EMAIL(){

TO="[email protected]"
CC_MAIL="[email protected]"

sendmail $TO,$CC_MAIL <<EOF
From: [email protected]
To: $TO
Cc: $CC_MAIL
Subject:Report
Content-Type: text/html;
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
body,td,th,table {
        font-family: Verdana, Arial, Helvetica, sans-serif;
        font-size: 12px;
        empty-cells: show;
}
-->
</style>
</head>
<body>
Hi Team,<br><br>

Fyi, IT Operation repot<br>
<br>

<table cellpadding="0" cellspacing="0" border="1" bordercolor="black"  style="wi
dth: 500px">
        <tr bgcolor="silver"  align="center" style="font-weight:bold">
                <td>REPORTED_BY</td>
                <td>TICKET_ID</td>
                <td>HELP_TOPIC</td>
                <td>SUBJECT</td>
                <td>CREATION_DATE</td>
                <td>REOPENED</td>
                <td>EST_DUEDATE</td>
                <td>UPDATED</td>
                <td>PRIORITY</td>
                <td>USERNAME</td>
        </tr>
</table>
<br>
<br>

Regards,<br>

IT Team

</body>
</html>
EOF

}

In crontab, I have this line:

* * * * * /bin/sh /opt/testfile.sh

I have restarted crontab, but nothing is happening.

If I run with the command manually, like ./test8.sh, then I receive an email.

Why is this not working from crontab?

lá cờ ar
Hãy thử thêm `/full/path/to/sendmail` vào tập lệnh của bạn.
lá cờ hr
@ user68186 đã đồng ý - iirc sendmail thường ở dạng `/usr/sbin`, không phải là một phần của `PATH` mặc định của cron - xem ví dụ câu trả lời liên quan này [Không thể gắn máy chủ khác vào crontab với 16.04](https:// askubuntu.com/a/919512/178692). Đồng thời, tập lệnh của bạn xác định hàm SEND_EMAIL - nhưng dường như không thực sự gọi nó.
muru avatar
lá cờ us
Bạn không thực sự gọi hàm `SEND_EMAIL` từ những gì tôi có thể thấy.
Điểm:1
lá cờ in

I solved it by adding the path /sbin/sendmail on the script

#!/bin/bash

SEND_EMAIL(){

TO="[email protected]"
CC_MAIL="[email protected]"

/sbin/sendmail $TO,$CC_MAIL <<EOF
From: [email protected]
To: $TO
Cc: $CC_MAIL
Subject:Report
Content-Type: text/html;
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
body,td,th,table {
        font-family: Verdana, Arial, Helvetica, sans-serif;
        font-size: 12px;
        empty-cells: show;
}
-->
</style>
</head>
<body>
Hi Team,<br><br>

Fyi, IT Operation repot<br>
<br>

<table cellpadding="0" cellspacing="0" border="1" bordercolor="black"  style="wi
dth: 500px">
        <tr bgcolor="silver"  align="center" style="font-weight:bold">
                <td>REPORTED_BY</td>
                <td>TICKET_ID</td>
                <td>HELP_TOPIC</td>
                <td>SUBJECT</td>
                <td>CREATION_DATE</td>
                <td>REOPENED</td>
                <td>EST_DUEDATE</td>
                <td>UPDATED</td>
                <td>PRIORITY</td>
                <td>USERNAME</td>
        </tr>
</table>
<br>
<br>

Regards,<br>

IT Team

</body>
</html>
EOF


}
SEND_EMAIL
Điểm:0
lá cờ ve

Vui lòng kiểm tra bằng cách đưa ra thời gian trễ như sau, nếu đó có thể là nguyên nhân chính. nếu vẫn còn, điều này sẽ không hoạt động, bạn phải kiểm tra tập lệnh.

Để chỉnh sửa crontab

$ crontab -e
1 * * * * /root/clearcache.sh

Ví dụ về định nghĩa công việc:

.---------------- phút (0 - 59)

| .-----------giờ (0 - 23)

| | .----------- ngày trong tháng (1 - 31)

| | | .------- tháng (1 - 12) HOẶC tháng 1, tháng 2, tháng 3, tháng 4 ...

| | | | .---- ngày trong tuần (0 - 6) (Chủ Nhật=0 hoặc 7) HOẶC 

Chủ nhật thứ Hai thứ Ba thứ Tư thứ Năm thứ Sáu thứ Bảy

| | | | |

* * * * * lệnh tên người dùng sẽ được thực thi

$ Sudo systemctl khởi động lại cron.service

Và cố gắng. Thông thường, nó sẽ hoạt động.

Terrance avatar
lá cờ id
Bạn có hiểu rằng điều này có nghĩa là chạy công việc sau mỗi giờ 1 phút không? Vì vậy, công việc sẽ chỉ chạy một lần mỗi giờ. Mỗi phút là `*/1` hoặc chỉ `*`.
Brijesh Sondarva avatar
lá cờ ve
Khi tôi gặp phải vấn đề tương tự và nó đã được giải quyết bằng cách thêm thời gian trễ ...
Terrance avatar
lá cờ id
Không có gì sai khi thêm độ trễ. Vấn đề với tuyên bố của bạn là họ sẽ phải đợi 1 giờ trước khi công việc định kỳ chạy lại nếu họ đang thử nghiệm nó. Khi kiểm tra một công việc định kỳ, bạn sẽ muốn nó chạy thường xuyên nhất có thể để bạn có thể kiểm tra nó. Thời gian của bạn ở đây có nghĩa là tôi chỉ có thể kiểm tra nó 24 lần một ngày. Có thể làm cho nó trì hoãn trong 3 phút bằng cách làm cho nó `*/3` hoặc cứ sau 2 phút `*/2`.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.