以下是我的一些代码:
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 now=$(date +"%A") mkdir -p /var/www/wiki/backups/$now databases=(bmshared brickimedia_meta brickimedia_en brickimedia_customs) locations=("/var/www/wiki/skins" "/var/www/wiki/images" "/var/www/wiki/") for db in ${databases[*]} do #command with passwords and shoodle : done for path in ${locations[*]} do #echo "" > var/www/wiki/backup/$now/$file.gz file=`echo $path | cut -d/ -f5` echo $path gzip -c $path > /var/www/wiki/backup/$now/$file.gz done
答案 0 :(得分:4)
创建的目录是备份,gzip是备份。
mkdir -p /var/www/wiki/backups/$now
gzip -c $path > /var/www/wiki/backup/$now/$file.gz
答案 1 :(得分:2)
您的某个位置是“/ 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解决了您报告的问题。