Score:1

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

ธง 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?

ar flag
ลองเพิ่ม `/full/path/to/sendmail` ในสคริปต์ของคุณ
hr flag
@ user68186 เห็นด้วย - โดยทั่วไป iirc sendmail จะอยู่ใน `/usr/sbin` ซึ่งไม่ได้เป็นส่วนหนึ่งของ `PATH` เริ่มต้นของ cron - ดูตัวอย่างคำตอบที่เกี่ยวข้องนี้ [ไม่สามารถเมานต์เซิร์ฟเวอร์อื่นใน crontab ด้วย 16.04](https:// askubuntu.com/a/919512/178692). เช่นกัน สคริปต์ของคุณกำหนดฟังก์ชัน SEND_EMAIL แต่ดูเหมือนจะไม่เรียกฟังก์ชันนั้นจริงๆ
muru avatar
us flag
คุณไม่ได้เรียกใช้ฟังก์ชัน `SEND_EMAIL` จากสิ่งที่ฉันเห็น
Score:1
ธง 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
Score:0
ธง ve

โปรดตรวจสอบโดยให้เวลาล่าช้าดังนี้ หากอาจเป็นสาเหตุหลัก ถ้ายัง วิธีนี้ใช้ไม่ได้ คุณต้องตรวจสอบสคริปต์

สำหรับแก้ไข crontab

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

ตัวอย่างคำจำกัดความของงาน:

.---------------- นาที (0 - 59)

| .------------ ชั่วโมง (0 - 23)

| | .---------วัน เดือน (1 - 31)

| | | .------- เดือน (1 - 12) หรือ ม.ค.,ก.พ.,มี.ค.,เม.ย. ...

| | | | .---- วันในสัปดาห์ (0 - 6) (วันอาทิตย์=0 หรือ 7) หรือ 

อาทิตย์,จันทร์,อังคาร,พุธ,พฤหัส,ศุกร์,เสาร์

| | | | |

* * * * * คำสั่งชื่อผู้ใช้ที่จะดำเนินการ

$ sudo systemctl รีสตาร์ท cron.service

และพยายาม โดยปกติแล้วควรใช้งานได้

Terrance avatar
id flag
คุณเข้าใจหรือไม่ว่านั่นหมายถึงการเรียกใช้งานทุก ๆ ชั่วโมงที่ผ่านไป 1 นาที ดังนั้นงานจะทำงานเพียงครั้งเดียวต่อชั่วโมง ทุกนาทีคือ `*/1` หรือแค่ `*`
Brijesh Sondarva avatar
ve flag
เมื่อฉันประสบปัญหาเดียวกันและได้รับการแก้ไขโดยเพิ่มการหน่วงเวลา...
Terrance avatar
id flag
ไม่มีอะไรผิดปกติในการเพิ่มความล่าช้า ปัญหาเกี่ยวกับคำสั่งของคุณคือพวกเขาต้องรอ 1 ชั่วโมงก่อนที่งาน cron จะรันอีกครั้งหากพวกเขาทำการทดสอบ เมื่อทดสอบงาน cron คุณต้องการให้ทำงานบ่อยที่สุดเท่าที่จะเป็นไปได้เพื่อให้คุณทดสอบได้ เวลาของคุณที่นี่หมายความว่าฉันทดสอบได้แค่ 24 ครั้งต่อวัน อาจทำให้ดีเลย์ 3 นาทีโดยตั้งเป็น `*/3` หรือทุกๆ 2 นาที `*/2`

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา