Bash脚本帮助 - Tar不使用变量?

时间:2014-03-29 14:00:07

标签: linux bash shell

我尝试使用bash脚本和CRON任务根据昨天的日期备份设置文件夹。

网站的文件夹结构如下:

/home/admin/domains/mysite.com/public_html/media/2014/March

我想将该文件夹备份到此文件:

/home/admin/domains/mysite.com/public_html/bk/mediabackup-March-2014.tar.gz

所以创建了这个脚本:


#!/bin/bash

NOW=$(date -d "12 hours ago" '+%m')

NOWYEAR=$(date -d "12 hours ago" '+%Y')

MONTHS=(Dummy January February March April May June July August September October November December)

NOWMONTH=${MONTHS[3]}

FILE="/home/admin/domains/mysite.com/public_html/bk/mediabackup-$NOWMONTH-$NOWYEAR.tar.gz"

PATH="/home/admin/domains/mysite.com/public_html/media/$NOWYEAR/$NOWMONTH"

tar -zcvf $FILE $PATH

当我通过shell运行此脚本时,我会这样做:

bash script.sh

它可能会出现“命令未找到” - 不确定为什么它不起作用?

任何帮助都会很棒,谢谢:)

2 个答案:

答案 0 :(得分:7)

通过覆盖shell的内置PATH变量,导致它找不到tar命令。使用另一个变量名,通常不要使用大写变量名。

答案 1 :(得分:2)

无需对月份名称进行硬编码:

read year month < <(date -d "12 hours ago" "+%Y %B")
echo "$month-$year"
March-2014