我正在创建一个将在 cron 上运行的 bash 脚本,其目的是使用命令将目录备份到 Amazon S3 s3cmd
。
运行脚本时出现以下错误:
/usr/bin/env: python: Not a directory
当我注释掉该s3cmd
命令时,Python 错误消失了。当我在终端中运行此命令时,它正常运行。
对于那些好奇的人,这是我的整个 bash 脚本:
#!/bin/bash
# clutching at straws here
# export PATH=/usr/bin/python:$PATH
# get the start time
START_TIME=$SECONDS
# set the log file output
NOW=$(date +"%m-%d-%Y")
FILE="domain_s3_$NOW.log"
PATH="/var/www/domain/log.domain.co/$FILE"
URL="http://log.domain.co/$FILE"
# fire the s3cmd sync command
/usr/local/bin/s3cmd/s3cmd sync --exclude-from /root/.s3cmd-exclude /var/www/ s3://domain-backup-latest/ > $PATH
ELAPSED_TIME=$(($SECONDS - $START_TIME))
# output diagnostic information
echo "Backup information:"
echo "- Duration: $(($ELAPSED_TIME/60)) min $(($ELAPSED_TIME%60)) sec"
echo "- Log: $URL"
编辑
我注意到了这一点相关问题Python 脚本在文件顶部有不同的声明,我想我需要这样的东西,但我现阶段只熟悉 bash 脚本。
答案1
明白了,我正在设置$PATH
变量,应该知道这太通用了,s3cmd
脚本的一部分(或依赖项)必须使用它。
学习到教训了。