9

これが私のコードです:

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

(ディレクトリへのパス)の内容をgzipして$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

データベース=(bmsharedbrickimedia_metabrickimedia_enbrickimedia_customs)
場所=( "/ var / www / wiki / skins" "/ var / www / wiki / images" "/ var / www / wiki /")

${databases[*]}のdbの場合
行う
#command with passwords and shoodle
:
終わり

${locations[*]}のパスの場合
行う
#echo ""> var / www / wiki / backup / $ now / $ file.gz
file = `echo $ 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

あなたの場所の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 に答える