我有两个 shell 脚本,分别名为:backup_inventory_sourcecode.sh
和backup_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