0

我不知道为什么这个脚本不起作用。该脚本已成为可执行文件,我在邮件或我设置用于捕获任何内容的 snap.log 中没有得到任何输出。我已经在命令行中以 root 身份运行,它运行良好,但是一旦它被添加到 cron 中,什么也没有发生。我完全被难住了,任何帮助将不胜感激。谢谢。

在 OS X Mavericks 上运行。

#!/bin/bash

# Ignores white space in directory names
IFS=$'\n'

# Sets all variables needed
export DLY_BKP=/Volumes/BKP/Daily_bkp.`/bin/date +%m%d%y`
export DLY_LOG=AAAdaily_bkp.txt
export BKP_DIR=/Users/Backup_logs
export VMPATH=/Applications/VMware\ Fusion.app/Contents/Library


#####################################################

# Finds all running VMs
$VMPATH/vmrun list | /usr/bin/sed 1d > $DLY_BKP/$DLY_LOG

# Creates snapshots of all running VMs on the server
while read vm; do
    $VMPATH/vmrun -T ws snapshot $vm "snapshot `/bin/date +%m/%d/%Y`"
    $VMPATH/vmrun -T ws deleteSnapshot $vm "snapshot `/bin/date -v-2d +%m/%d/%Y`"
done < $DLY_BKP/$DLY_LOG > $DLY_BKP/snap.log 2>&1
4

1 回答 1

0

为 CRON 使用设置脚本通常需要通过 crontab 设置或在脚本本身中添加路径。尝试将显式 PATH 添加到您的 crontab 或脚本中。

Crontab 条目因操作系统而异,因此请检查您的文档 - 对于免费 BSD,它们类似于 'crontab -e' 并编辑条目(请参阅 'man crontab' 或 'man -a crontab' 了解您的操作系统的详细信息):

PATH=/some_custom_path # affect all JOBs in Crontab

 ### MM HH Day Month WEEk_Day << Order VARIES by OS!  
 ## run on 2nd/4th/6th days of week  
19 9 * * 2,4,6  /home/user/bin/some_script  

丢弃所有输出:

19 9 * * 2,4,6  /home/user/bin/some_script > /dev/null 2>&1  

将所有数据发送到您指定的日志文件:

19 9 * * 2,4,6  /home/user/bin/some_script > /tmp/cron_job.log 2>&1  

邮件结果和错误

19 9 * * 2,4,6  /home/user/bin/some_script 2>&1 | mail -s "Cron results" user@your_dom.com 
于 2014-04-15T11:02:36.537 回答