s3cmd
我正在创建一个将在 cron 上运行的 bash 脚本,其目的是使用该命令将目录备份到 Amazon S3 。
运行脚本时出现以下错误:
/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 脚本。
明白了,我正在设置
$PATH
变量,应该知道这太通用了,部分s3cmd
脚本(或依赖项)必须使用它。学习到教训了。