2012-01-23 5 views
1

У меня есть функция в моем .bashrc, что я использую для резервного копирования файлов:Резервное копирование каталогов с Bash

backup() { 
    filename=`date +F-%H-%M`-"[email protected]" 
    /bin/cp -fr "[email protected]" ~/backup/$filename 
} 

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

alias backfox="backup /home/projects/Foxhound" 

Я получаю ошибку

/bin/cp: cannot create directory `/home/username/backup/2012-01-23-15-03-/home/projects/Foxhound`: No such file or directory 
+4

вы можете использовать rsync вместо cp для резервного копирования; это намного эффективнее. Вот быстрый учебник http://www.mikerubel.org/computers/rsync_snapshots/#Rsync – TJD

+0

Возьмите его с @TJD, rsync - это то, что вы хотите использовать. –

+0

Прохладный. В конце концов я изменил это на вызов rsync, и это было намного проще. Благодарю. – Foggzie

ответ

1

Вы можете добавить:

mkdir -p $filename 

до cp линия.

+0

Это сработало. Благодарю. – Foggzie

+0

Тем не менее, я согласен с комментариями к вашим вопросам. Используйте rsync ;-) – jman

2

Я обычно деготь/заархивировать каталог с чем-то вроде этого

tar -czf backup-$(date +-%Y-%m%d-%H%Mh%S).tar.gz $filename 

затем просто mv ТДЫ в резервных копиях каталога/файловый сервер и т.д.

Это делает его легче, чем работать кучу каталогов

+0

Прохладная идея, и она работает. – Foggzie

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