我有一个 sh 脚本文件,当使用以下命令从命令行运行时可以正常工作 -
./start.sh
启动一个 tomcat 服务器,并使用 sshfs 安装一个驱动器
但当我这样做
crontab -e
@reboot /home/start.sh
然后只有 apache tomcat 启动,sshfs 不会挂载,start.sh 文件是 -
/home/tomcat/apache-tomcat-9.0.71/bin/startup.sh
sleep 20s
sshfs -o password_stdin,allow_other [email protected]:/home/hdd/ /home/hdd/ <<< 'password'
答案1
我想你会在帖子中找到答案 在 FreeBSD 9.0 上通过 Cron 调用时安装 fuse sshfs 失败:
事实证明,$PATH 环境变量是导致此问题的原因。修改上面的脚本,将 PATH 设置与 shell 相同,现在它可以正常工作:
PATH="/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/root/bin" export PATH
我想教训是永远不要对最小的 Cron 环境做出任何假设。