2014-09-09 2 views
0

Я пытаюсь выполнить команду, как это для резервного копирования моего общедоступного каталога:дегтя пытается открыть вместо создания архива

tar -zcvf backups/2014-09-09-public_html.tar.gz public_html -C home/path 

Я понимаю, что это, как предполагается создать и архив с сжатое содержимое моего общего каталога. Но я получаю следующие ошибки:

tar (child): backups/2014-09-09-public_html.tar.gz: Cannot open: No such file or directory 
tar (child): Error is not recoverable: exiting now 
tar: Child returned status 2 

Это меня смущает, потому что я хочу, чтобы он создавал файл, а не открывал его. Я использовал аналогичные команды в других проектах без проблем, поэтому я не уверен, что проблема может быть здесь. Что я могу делать неправильно?

ответ

1

Когда вы создаете файл, вы фактически открываете его в режиме записи, даже если он еще не существует (см. man 3 open, чтобы понять, как это работает на * nix).

У вас есть права на запись для адресата, где вы пытаетесь сжать? Можете ли вы touch(1), что местоположение?

+0

Да, я могу коснуться места. Я также делаю mysqldump там, и он создает файл просто отлично – Chris

+0

Так что '' 'touch backups/2014-09-09-public_html.tar.gz''' отлично работает? Похоже, мое предположение было неправильным в этом случае, извините. – WhyNotHugo

+0

Ну, ты дал мне часть ответа, который я искал. Теперь я знаю, почему он пытался открыть файл, поэтому +1 за это, спасибо! – Chris

0

Ну, я, наконец, получил это работает, поставив -C/дом/путь в начале и используя абсолютный путь к имени архива вместо относительного пути:

tar -C /home/path -zcvf /home/path/backups/2014-09-09-public_html.tar.gz public_html 

Я до сих пор не понимаю почему мне нужно указать абсолютный путь для имени архива, так как я всегда использовал относительный путь в других проектах. Наверное, может быть, это разница в том, как этот сервер настроен или что-то еще?

+0

Путь относится к вашему текущему каталогу. «home/path» должен существовать в текущем каталоге, чтобы он работал, или ваш текущий каталог должен быть «/». – WhyNotHugo

Смежные вопросы