Это может сделать лучше в StackExchange, но я использую Ubuntu в качестве моего файлового сервера.
Поэтому я пытаюсь использовать tar и gzip только для резервного копирования последних 6 месяцев изменений на моем файловый сервер, и он не работает. Он ничего не делает gzip, он помещает tar-файл в тот же каталог, что и скрипт (не то, что я хочу), и он изменяет имя файла на часть строки tar.
Вот сценарий:
#!/bin/bash
tod=$(date +%F_%H%M%S)
echo "start"
echo $tod
echo "testing tar, only the last 6 months"
tar -cvf--newer-mtime=08-11-2013 /homedepot/yellowsolo/xz/6months/xz$tod-last6months.tar /homedepot/yellowsolo/xz/official/official /homedepot/yellowsolo/xz/home/home
echo "now zipping"
gzip /homedepot/yellowsolo/xz/6months/xz$tod-last6months.tar.gz
echo $tod
echo "done"
exit
Спасибо заранее
Сначала вы попытались создать файл .tar. Помимо синтаксической ошибки, bodhi.zazen уже указал, что ваше имя файла tar должно появиться сразу после опции -f. Как метко заметил Уилф в своем ответе.
tar --newer-mtime=08-11-2013 -cvf /homedepot/yellowsolo/xz/6months/xz$tod-last6months.tar /homedepot/yellowsolo/xz/official/official /homedepot/yellowsolo/xz/home/home
Затем появляется еще одна ошибка. Вы собираетесь gzip /homedepot/yellowsolo/xz/6months/xz$tod-last6months.tar.gz, но этот файл не существует.
Скорее у вас есть файл /homedepot/yellowsolo/xz/6months/xz$tod-last6months.tar
Вы должны использовать
gzip /homedepot/yellowsolo/xz/6months/xz$tod-last6months.tar
Он создаст /homedepot/yellowsolo/xz/6months/xz$tod-last6months.tar.gz.
Примечание:
Вы можете сделать это напрямую,
tar --newer-mtime=08-11-2013 -cvzf /homedepot/yellowsolo/xz/6months/xz$tod-last6months.tar.gz /homedepot/yellowsolo/xz/official/official /homedepot/yellowsolo/xz/home/home
-z переключатель zip tar одновременно.