我的 shell 脚本通过 putty 命令完美运行,但当我将其放入 crontab 中时,它不起作用

我的 shell 脚本通过 putty 命令完美运行,但当我将其放入 crontab 中时,它不起作用

我有两个 shell 脚本,分别名为:backup_inventory_sourcecode.shbackup_bash.sh。我使用 putty 运行这两个 .sh 文件,如下所示:

sh /var/www/html/backup_inventory_sourcecode.sh
sh /var/www/html/backup_bash.sh 

成功运行,分别生成zip文件和sql文件,backup_inventory_sourcecode.sh内容为:

#!/bin/bash

NOW=$(date +"%m_%d_%Y")


sudo zip -r /inventory_sourcecode_backup/inventory_backup_${NOW}.zip /var/www/html/inventory -x ".git"

sync
/var/www/html/ftpupload.sh /inventory_sourcecode_backup/inventory_backup_${NOW}.zip

backup_bash.sh的内容为:

#!/bin/bash
NOW=$(date +"%m_%d_%Y_%H_%M_%S")
NOW=${NOW}_Inventory
mysqldump -u root -pAplrootuser  db_apl_inventory >/db_backup/${NOW}.sql

#sleep 30
/var/www/html/ftpupload.sh /db_backup/${NOW}.sql

现在我将这两行放入crontab中:

*/1 * * * * sh /var/www/html/backup_inventory_sourcecode.sh
*/1 * * * * sh /var/www/html/backup_bash.sh

这些应该分别创建 .zip 和 .sql 文件。但它只生成 .sql 文件。事实证明它只*/1 * * * * sh /var/www/html/backup_bash.sh起作用,但不起作用 */1 * * * * sh /var/www/html/backup_inventory_sourcecode.sh。问题是什么。

答案1

Cron 的默认路径取决于实现,因此请检查您的手册页。

PATH您可以在 crontab 文件中定义自己的变量。

PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin
*/1 * * * * sh /var/www/html/backup_inventory_sourcecode.sh
*/1 * * * * sh /var/www/html/backup_bash.sh

相关内容