Страница 1 от 2 12 ПоследноПоследно
Резултати от 1 до 15 от общо 22

tar

Сподели във Facebook Сподели в Twitter Изпрати на Email Сподели в LinkedIn
  1. get
    get е офлайн
    Senior Member
    Тук е от
    Mar 2003
    Мнения
    1,405
    #1

    tar

    Здравейте.

    Как да накарам "tar" да архивира файлове, които са създадени до преди 24 часа/седмица и т.н. ?
    В разни директории постоянно се създават файлове, а не знам как да ги разгранича. Всеки слага различни имена -
    година-месец-ден или ден-месец-година, а повечето изобщо нямат подобно заглавие.
    Как да архивирам файловете, които са на не повече от 24 часа. В "tar" видях за "--newer-time" и date, но не мога да се справя.

    Благодаря !

  2.  
     
  3. Senior Member
    Тук е от
    Dec 2000
    Мнения
    3,218
    #2

    Re: tar


    man tar:


    -N, --after-date DATE, --newer DATE
    only store files that were modified or had status updates (permissions, ACLs,
    extended attributes,...) since DATE

    Примерно:
    Код:
    tar -c -N 2007-05-08 -f bachup.tar ./dir

  4. Member
    Тук е от
    Dec 2004
    Мнения
    741
    #3

    Re: tar

    Само да допълня, че дата може да се даде и относително спрямо даден момент, т.е. ден, седмица и т.н. преди или след текущия. Тогава горното, за файлове по-нови от един ден (24 часа) назад, става например така:


    tar -c --newer='day ago' -f bachup.tar ./dir

    Съответно 'week ago', '5 days ago', '-3 weeks' и т.н.

    (обърни внимание на апострофите!)

    Повече за релативното представяне на датите - http://www.gnu.org/software/tar/manu...n-date-strings

  5. get
    get е офлайн
    Senior Member
    Тук е от
    Mar 2003
    Мнения
    1,405
    #4

    Re: tar

    т.е. ще стане нещо от рода на:
    tar zfvc --newer='day go' /data/..... /data/backup/arhive.tgz
    и по този начин tar ще архивира файлове създадени до преди 24 часа, по-стари няма, нали?

  6. Member
    Тук е от
    Dec 2004
    Мнения
    741
    #5

    Re: tar

    Неправилно си написал командата. Ако искаш да съдава gzip-нат архив трябва да е така:

    tar --newer='day ago' -zcvf име_на_архивния_файл.tgz директория_която_архивираш

    Опциите са:
    --newer='day ago' - всички файлове в директорията, която си указал, които са "по-пресни" от 24 часа;
    -z - да "смачка" изходния файл в gzip формат;
    -c - да създаде архив;
    -v - "бърборещ" режим - ще показва кои файлове вкарва в архива. Не е много смислено според мен, но не пречи;
    -f име_на_архивния_файл - забележи, че името на файла, който ще създаваш трябва задължително да следва -f. То му е параметър и не може да бъде най-отзад на командата ти, колкото и да ти изглежда логично! Това, че -z -c -v и -f са обединени в -zcvf не променя нещата.

    И не забравяй, че Linux-a, а и всички UNIX like OS са funny business и дори една неправилно плесната запетайка може да сътвори огромни поразии.
    Гледай точно синтаксиса (в случая от поста на Ghost или от този) и го спазвай стриктно.

  7. Senior Member
    Тук е от
    Dec 2000
    Мнения
    3,218
    #6

    Re: tar

    tar е могъщ инстумент и едва ли ще можем да изтъкнем всичките му възможности, но ми се стори разумно да добавя, че "-z" може да бъде заменено с "-j". В този случай компресията не е gzip, a bzip2, което дава много по-висок коефициент на компресиране, но пък е ( изненада! ) за сметка на бързодейстието. Aз предпочитам bzip2.

    tar -jcpf backuo.tbz2 -N 'day ago' dir-name
    или:
    tar -jcpf backuo.tar.bz2 -N 'day ago' dir-name

    За да видиш съдържанието на съществуващия архив, използвай "-t":

    tar -tf backup.tar.bz2
    или в "бърборещ режим": //много ми хареса израза
    tar -tvf backup.tar.bz2

    П.П.

    "-p" в повечето случаи е важна опция. За домашно ти оставям сам да провериш какво прави ;-р

  8.  
     
  9. get
    get е офлайн
    Senior Member
    Тук е от
    Mar 2003
    Мнения
    1,405
    #7

    Re: tar

    Благодаря много. Мисля, че така реда е достатъчен.
    cat /etc/crontab
    /usr/bin/tar --newer='day ago' -zcvf /data/backup/archivedb.tgz /data/db/*

    Досега никога не съм tar-вал с "-p", но явно има защо
    -p (x mode only) Preserve file permissions. Attempt to restore the
    full permissions, including owner, file modes, file flags and
    ACLs, if available, for each item extracted from the archive. By
    default, newly-created files are owned by the user running tar,
    the file mode is restored for newly-created regular files, and
    all other types of entries receive default permissions. If tar
    is being run by root, the default is to restore the owner unless
    the -o option is also specified.

    а bzip-a не защо не го използвам, ще пробвам някой път с него бързина при де/компресия и като размер.

    Благодаря Ви !

  10. Senior Member
    Тук е от
    Aug 2005
    Мнения
    1,029
    #8

    Re: tar

    аз само да вметна, че ако архивираш mysql или подобна база данни, е по-добре да dump-неш базата данни и после да архивираш дъмп-а.

  11. get
    get е офлайн
    Senior Member
    Тук е от
    Mar 2003
    Мнения
    1,405
    #9

    Re: tar

    Благодаря !
    За бази ползвам gbak или съответния инструмент, досега проблеми не съм имал.

    Скоро ще споделя резултата от tar-a, но не мисля че ще има проблем

  12. Member
    Тук е от
    Dec 2004
    Мнения
    741
    #10

    Re: tar

    Би трябвало да стане. Но щом ще го пускаш с crontab, то той ще ти генерира мейл до акаунта, от който пускаш скрипта (вероятно root) с изхода от изпълнението. В случая цялото "бърборене" и ако има и съобщенията за грешки. Имаш и два други варианта:

    1. Да не се генерира репорт или по-точно да се пренасочи целият изход към null. Става така:

    /usr/bin/tar --newer='day ago' -zcf /data/backup/archivedb.tgz /data/db/* > /dev/null 2>&1
    (махаш и -v опцията - съвсем излишна става)

    2. Ако тази информация ти е важна или поне полезна, можеш да си създадеш log файл, в който да се трупа. Става така:

    /usr/bin/tar --newer='day ago' -zcvf /data/backup/archivedb.tgz /data/db/* > /директория/име_на_лог.log


  13. get
    get е офлайн
    Senior Member
    Тук е от
    Mar 2003
    Мнения
    1,405
    #11

    Re: tar

    > /dev/null 2>&1 го ползвам винаги - съжалявам че не го постнах по-горе
    както винаги описвам пълния път до командите

    А относно log-a, той какво ще логва - грешките, това което е tar-нало или?

  14.  
     
  15. Senior Member
    Тук е от
    Dec 2000
    Мнения
    3,218
    #12

    Re: tar

    Така, както pimpirlit е посъветвал, става само, ако не те интересуват съобщенията за грешки, защото те се изливат в standard error (по подразбиране file descriptor 2). Така, че препращането трябва да е или "2>&1" или неговия alias "&>".

    Т.е ако искаме и грешките да се запишат във файла, командата ще бъде:

    /usr/bin/tar --newer='day ago' -zcvf /data/backup/archivedb.tgz /data/db/* &>/dir/name.log
    или:
    /usr/bin/tar --newer='day ago' -zcvf /data/backup/archivedb.tgz /data/db/* > /dir/name.log 2>&1

    Повече информация за препращането: man bash/REDIRECTION


    П.П.

    За домашно: man tee ;-)

  16. Member
    Тук е от
    Dec 2004
    Мнения
    741
    #13

    Re: tar

    Цитат Първоначално публикувано от Ghost
    ...
    За домашно: man tee ;-)
    /off
    Да бе! Егати и домашното. Разказа всички тайни на линукса, ей тъй на, без бой!
    К'ъв линуксчия си, а?! Вместо да се правиш на важен, ти...
    Я си изключи -v!

  17. Senior Member
    Тук е от
    Dec 2000
    Мнения
    3,218
    #14

    Re: tar

    lol


  18. Member
    Тук е от
    Jun 2002
    Мнения
    796
    #15

    Re: tar

    Ghost както обикновенно получава от мен +1 за краткия, но изчерпателен съвет

Сподели във Facebook Сподели в Google Plus Сподели в Twitter Изпрати на Email Сподели в LinkedIn
Страница 1 от 2 12 ПоследноПоследно

SetCombG.com
SetCombG.com е портален сайт и Форум за битова техника, телевизори, климатици, лаптопи и смартфони, създаден през 1999 година.
Заедно сме над 20 години!
Следвай ни
Горе