shell指令碼手動執行成功,定時任務執行指令碼不成功

2022-10-05 06:42:08 字數 883 閱讀 8412

原因:cron的環境變數和shell指令碼的環境變數不一樣

解決辦法:

#方法一:定時任務裡面切換到root執行()

*/5 * * * * su - root -c "/data/pkgs/mysql/tools/auto_backup.sh"

#方法二:在指令碼裡面新增環境變數(親測可用)

vim /data/pkgs/mysql/tools/auto_backup.sh

#!/bin/bash

source /etc/profile

source ~/.bash_profile

#!/bin/sh

# 在這修改程式名和程式所在目錄,其他不用改

source /etc/profile

source ~/.bash_profile

name="carte"

pid=`ps -a |grep $name| awk ''`

now=`date "+%y-%m-%d %h:%m:%s"`

# 檢測是否在執行

if [ ! $pid ]

then

echo "$now $name is not running, start it now..."

# 啟動程式命令

cd $path

echo "$now $path come in..."

new_pid=`ps -a |grep $name| awk ''`

# 檢測是否啟動成功

else

echo "$now $name is running, pid is $pid"

fi

定時任務可以通過cat /var/spool/mail/root檢視是否生效

linux 定時執行shell指令碼

在oracle 中可以利用dbms job包定時執行pl sql sql過程,在像備份等需要在作業系統級定時任務只能採用crontab來完成 本文講述crontab具體用法,以供備忘.在oracle 中可以利用dbms job包定時執行pl sql sql過程,在像備份等需要在作業系統級定時任務只能...

linux 定時執行shell指令碼

今天從網上看到了一篇文章,將其收藏。在oracle 中可以利用dbms job包定時執行pl sql sql過程,在像備份等需要在作業系統級定時任務只能採用crontab來完成 本文講述crontab具體用法,以供備忘.利用crontab來定時執行任務大致有如下三步 1 編寫shell指令碼 2 利...

crontab不能成功執行shell指令碼的可能原因

我們經常會需要使用crontab進行定時任務,但crontab不能成功執行指令碼的情況還是很常見,總結起來,本人了解到的和自己遇到的可能原因主要有以下幾個 1.crond程序不存在,該程序是crontab的守護程序,它必須存在才能讓crontab正常使用 2.系統時間不對 3.環境變數的問題 cro...