RAR Каждая папка в каталоге - PullRequest
0 голосов
/ 15 июля 2009

Я новичок в командах Linux и большую часть времени провожу в VB. После поиска в Интернете трудно найти решение в Google.

Во всяком случае, каждый день я делаю резервную копию своей папки Shares и получается 183 ГБ. Я перепробовал множество способов сделать это, и пришел к выводу, что использование rar было лучшим вариантом для моей среды. Вот эта команда, которую я использую:

./rar a -v1g -m0 -ow -ag[dd-mm-yy] Shares "/shares"

В результате я получаю множество файлов деталей "Shares[15-07-09].part01.rar", и это нормально.

Что я действительно хочу сделать сейчас, так это сделать резервную копию каждой папки в каталоге общих ресурсов, чтобы я получил что-то вроде:

Folder1[15-07-09].part01.rar
Folder2[15-07-09].part01.rar
Folder3[15-07-09].part01.rar

Я надеюсь, что вы, ребята, можете помочь с простым сценарием, который я должен понимать.

Ответы [ 2 ]

1 голос
/ 15 июля 2009
cd /shares ; find . -type d -maxdepth 1 -exec rar a -v1g -m0 -ow '-ag[dd-mm-yy]'  '/backupdir/{}' '{}' ';'

Команда find ищет каталоги (-type d) без рекурсии (-maxdepth 1) в "/ shares" и выполняет (-exec) команду rar. '{}' Заменяется именем найденного каталога. Я не уверен во всех ваших rar-переключателях, но если команда ниже работает, то команда find должна делать то, что вы хотите:

rar a -v1g -m0 -ow -ag[dd-mm-yy] /backupdir/Folder1 /shares/Folder1
0 голосов
/ 17 июля 2009

Это то, чем я закончил.

cd /BackupServer/WNGLX2/ ; find /shares -maxdepth 1 -type d -printf "%P\n" |xargs -i /BackupServer/WNGLX2/rar a -v1g -m0 -ow -ag[dd-mm-yy] {} /shares/{} \;
...