简体   繁体   English

为cron作业编写bash脚本的正确方法是什么

[英]What is the right way to write a bash script for cron job

I have written a bash script that is supposed to be executed by a cron job.我编写了一个 bash 脚本,该脚本应该由 cron 作业执行。 But according to the cron output one of the lines in the bash script is not executing.但是根据 cron output bash 脚本中的一行没有执行。

Here is my bash script这是我的 bash 脚本

#! /bin/bash
/usr/bin/mysql</home/elijah/Desktop/covid-19-management-tool/cron_job/import.sql
./home/elijah/Desktop/covid-19-management-tool/cron_job/clear

This is the output I got from cron after execution这是执行后我从 cron 得到的 output

X-Cron-Env: <HOME=/root>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=root>
Message-Id: <20210205172001.F3C5FE221D@elijah-HP-255-G6-Notebook-PC>
Date: Fri,  5 Feb 2021 20:20:01 +0300 (EAT)

/home/elijah/Desktop/covid-19-management-tool/cron_job/dbs.sh: line 3: ./home/elijah/Desktop/covid-19-management-tool/cron_job/clear: No such file or directory

--F3C5FE221D.1612545602/elijah-HP-255-G6-Notebook-PC--

For line 3 in my bash script I want to run an executable called clear .对于我的 bash 脚本中的第 3 行,我想运行一个名为clear的可执行文件。

Someone please tell me how I should do it in the shell script so that cron can understand it.有人请告诉我应该如何在 shell 脚本中执行此操作,以便 cron 可以理解它。

Get rid of the .摆脱. before /home (unless you have indeed the following directory structure):/home之前(除非您确实具有以下目录结构):

/home/elijah/home/elijah/Desktop/covid-19-management-tool/cron_job/clear

The . . makes this a relative path, while it's most likely meant to be absolute.使它成为一个相对路径,而它很可能是绝对的。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM