Вопросы новичка по командной строке Linux

Х
На сайте с 07.03.2005
Offline
99
6421

Хочу настроить автоматическое резервное копирование файлов на сервере.

Файлы лежат в директории /home/chess/http/ .

Какую команду казать cron-у, чтобы он ежедневно упаковывал содержимое этой директории в файл и клал его в /home/chess/ ?

Кроме того, хотелось бы автоматически стирать старые архивы.

Я написал "find ./ -mtime +7|xargs rm -f >/dev/null 2>&1", а эта команда почему-то постирала все файлы по всем директориям, а не старые архивы. Как написать правильно?

[umka]
На сайте с 25.05.2008
Offline
456
#1
Харви:
find ./ -mtime +7|xargs rm -f >/dev/null 2>&1

Путь полный нужно указывать. Это во-первых.

Во-вторых, вы пакуете /home/chess/http/ и кладёте в /home/chess/. Если вы хотите стирать старые архивы только из /home/chess/ и не хотите ничего стирать из поддиректорий, то нужно указать '-maxdepth 1'

В-третьих, я бы ещё и шаблон добавил типа '-name backup*.tar.gz'

И вообще, не понятно, почему вы не используете опцию '-delete' :)

Лог в помощь!
Х
На сайте с 07.03.2005
Offline
99
#2
'[umka:
;7125170']Путь полный нужно указывать. Это во-первых.
Во-вторых, вы пакуете /home/chess/http/ и кладёте в /home/chess/. Если вы хотите стирать старые архивы только из /home/chess/ и не хотите ничего стирать из поддиректорий, то нужно указать '-maxdepth 1'
В-третьих, я бы ещё и шаблон добавил типа '-name backup*.tar.gz'

И вообще, не понятно, почему вы не используете опцию '-delete' :)

Опцию '-delete' я не использую потому, что не знаю такой.

Правильно я вас понял, что удалять старые архивы нужно командой

"find ./home/chess/ -name backup*.tar.gz -maxdepth 1 -mtime +7|xargs rm -f >/dev/null 2>&1" ?

А как создавать архивы backup.tar.gz, так, чтобы у них в имени указывалась текущая дата и имена были уникальными?

[umka]
На сайте с 25.05.2008
Offline
456
#3
Харви:

Правильно я вас понял, что удалять старые архивы нужно командой
"find ./home/chess/ -name backup*.tar.gz -maxdepth 1 -mtime +7|xargs rm -f >/dev/null 2>&1" ?

Просто:

find /home/chess/ -name backup*.tar.gz -maxdepth 1 -mtime +7 -delete

Харви:

А как создавать архивы backup.tar.gz, так, чтобы у них в имени указывалась текущая дата и имена были уникальными?

Это уже другой вопрос. Ответ на него вам наверное дадут виртуозы sed/awk/и тд :)

Вообще, для этих целей существует множество скриптов.

[umka] добавил 19.06.2010 в 17:35

А! я придумал!

tar -czf /home/chess/backup-`date "+%y-%m-%d"`.tar.gz /home/chess/http/

Х
На сайте с 07.03.2005
Offline
99
#4

[umka], спасибо!

Харви добавил 19.06.2010 в 21:52

'[umka:
;7125404']
А! я придумал!

tar -czf /home/chess/backup-`date "+%y-%m-%d"`.tar.gz /home/chess/http/

Команда работает, но выдаёт сообщение

tar: Removing leading `/' from member names

это нормально?

Zaqwr
На сайте с 08.08.2007
Offline
111
#5

cd home/chess/http && tar -czf /home/chess/backup-`date "+%y-%m-%d"`.tar.gz ./

Администрирование, Linux, Cisco, Juniper
[umka]
На сайте с 25.05.2008
Offline
456
#6
Харви:
[umka], спасибо!

Харви добавил 19.06.2010 в 21:52


Команда работает, но выдаёт сообщение
tar: Removing leading `/' from member names
это нормально?

Это оно в целях безопасности.

Всё правильно, так и должно быть.

bugsmoran
На сайте с 18.02.2010
Offline
223
#7
Харви:
Команда работает, но выдаёт сообщение
tar: Removing leading `/' from member names
это нормально?

Поставьте флаг -P (tar czfP ...), тогда не будет этого сообщения.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий