9

这是我的一些代码:

gzip -c $path > /var/www/wiki/backup/$now/$file.gz

我正在$path压缩(目录的路径)的内容,然后将压缩文件发送到/var/www/wiki/backup/$now/$file.gz. $now包含目录名称,$file是我要写入压缩文件的名称。

但是,在运行程序时,我收到此错误:

backup.sh: line 20: /var/www/wiki/backup/Sunday/extensions.gz: No such file or directory
                                         ^$now    ^$file

(第 20 行是上面给出的行)

为什么程序会中断?我知道Sunday/extensions.gz不存在(虽然星期天存在),这就是为什么我要你写信给它!

完整程序代码:

#!/bin/bash

现在=$(日期 +"%A")
mkdir -p /var/www/wiki/backups/$now

数据库=(bmshared brickimedia_meta brickimedia_en brickimedia_customs)
位置=("/var/www/wiki/skins" "/var/www/wiki/images" "/var/www/wiki/")

对于 ${databases[*]} 中的数据库
做
#command 带密码和 shoodle
:
完毕

${locations[*]} 中的路径
做
#echo "" > var/www/wiki/backup/$now/$file.gz
文件=`回显 $path | 剪切-d/-f5`
回声$路径
gzip -c $path > /var/www/wiki/backup/$now/$file.gz
完毕
4

2 回答 2

6

创建的目录是备份,gzip是备份

mkdir -p /var/www/wiki/backups/$now

gzip -c $path > /var/www/wiki/backup/$now/$file.gz
于 2013-03-24T16:04:47.577 回答
1

您的位置之一是“/var/www/wiki/”。然后你有

file=`echo $path | cut -d/ -f5`
gzip -c $path > /var/www/wiki/backup/$now/$file.gz

由于$file包含空字符串,您正在尝试写入/var/www/wiki/backup/Sunday/.gz. 这是一个问题,但不是您报告的错误。

当我尝试 gzip 目录时,我收到此错误

$ gzip -c ./subdir/ > subdir.gz
gzip: ./subdir/ is a directory -- ignored

这是一个问题,但不是您报告的错误。

@suspectus 解决了您报告的问题。

于 2013-03-24T16:26:27.223 回答