LINUX.ORG.RU
ФорумAdmin

crontab - будет ли так работать?

 ,


0

1

Добрый день!

Будет ли работать такое:

00 23   * * *   root    pg_dump -U postgres new2014 | tar zcf /var/PGBackup/new2014.backup-`date +%F-%H`.tgz
00 00   * * *   root    find /var/PGBackup/ -name 'new2014.backup*tgz' -mtime 5 -delete

В 23:00 производится выгрузка из базы Postgres, потом выгруженное архивируется в архив .tgz и в конце присваивается дата.

Второй строчкой в 00:00 проверяется, если таких архивов более 5 - один из них удаляется.

А почему не написать скрипт, который делает тоже самое и его пускать в cron? Те же две строки, только проблем со временем не будет.

Evgueni ★★★★★
()
Ответ на: комментарий от Smorodin

А что мешает наделать фэйковых файлов и потренероваться на них?

Evgueni ★★★★★
()

А зачем передавать один файл в tar? можно просто в gzip передать

disarmer ★★★
()

Попробовал, но что-то не работает. Не зипуется. Что-то не так.

Smorodin
() автор топика

Осторожнее с % в crontab'e, он там особый

man 5 crontab

       The  ``sixth'' field (the rest of the line) specifies the command to be
       run.  The entire command portion of the line, up  to  a  newline  or  %
       character, will be executed by /bin/sh or by the shell specified in the
       SHELL variable of the crontab file.  Percent-signs (%) in the  command,
       unless escaped with backslash (\), will be changed into newline charac‐
       ters, and all data after the first % will be sent  to  the  command  as
       standard  input.  There  is  no way to split a single command line onto
       multiple lines, like the shell's trailing "\".
sdio ★★★★★
()
Ответ на: комментарий от sdio

По отдельности эти команды срабатывают, а вместе - не хотят. Не могу понять почему. % в дате срабатывает.

Smorodin
() автор топика
Ответ на: комментарий от sdio

Пробовал через && и через | объединять - не помогает.

Smorodin
() автор топика

find /var/PGBackup/ -name 'new2014.backup*tgz' -mtime 5 -delete

man tmpwatch

eliriand ★★
()

А может быть есть такой скрипт, который позволяет делать бэкапы из базы постгрес, а потом их архивировать и удалять лишние?

Smorodin
() автор топика
Ответ на: комментарий от Smorodin

Насчет «удалять лишние» - случилось однажды такие костыли городить...

#!/bin/bash

MIN_FREE_SPACE=5000

freehd=`df -m | grep "/dev/sdb2" | awk '{print $4}'`;

array=(/mnt/recs/*)
i=0

while [ $freehd -lt $MIN_FREE_SPACE ] 
do
  x=${array[ $i ]}

  rm -rf $x

  ((i++))
  freehd=`df -m | grep "/dev/sdb2" | awk '{print $4}'`;
done

unconfigured
()
Ответ на: комментарий от Evgueni

А почему не написать скрипт, который делает тоже самое и его пускать в cron?

Зачем писать, когда в репах уже есть готовое? autopostgresqlbackup

beastie ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.