我尝试使用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
它可能会出现“命令未找到” - 不确定为什么它不起作用?
任何帮助都会很棒,谢谢:)
答案 0 :(得分:7)
通过覆盖shell的内置PATH
变量,导致它找不到tar
命令。使用另一个变量名,通常不要使用大写变量名。
答案 1 :(得分:2)
无需对月份名称进行硬编码:
read year month < <(date -d "12 hours ago" "+%Y %B")
echo "$month-$year"
March-2014