На самом деле это единственный раздел про unix на этом форуме
Модераторы: /dev/random, Модераторы разделов
-
distress
- Сообщения: 84
- ОС: RHEL5
Сообщение
distress »
приветствую.
есть такой скрипт для архивирования логов. сжать все файлы кроме сегодняшней даты. из консоли работает без ошибок.
Код: Выделить всё
cd /var/logs/sql; /usr/bin/xz -z -9 -e $(/bin/ls | fgrep -v ".xz" | /bin/fgrep -v $(/bin/date +%Y-%m-%d))
добавляю в crontab
Код: Выделить всё
* * * * * cd /var/logs/sql; /usr/bin/xz -z -9 -e $(/bin/ls | fgrep -v ".xz" | /bin/fgrep -v $(/bin/date +%Y-%m-%d))
и тут внезапно... ошибка:
Код: Выделить всё
/bin/sh: -c: line 0: unexpected EOF while looking for matching `)'
/bin/sh: -c: line 1: syntax error: unexpected end of file
wtf?

-
/dev/random
- Администратор
- Сообщения: 5404
- ОС: Gentoo
Сообщение
/dev/random »
Я вижу две открывающие скобки - перед /bin/ls и перед /bin/date - и только одну закрывающую, в конце.
-
distress
- Сообщения: 84
- ОС: RHEL5
Сообщение
distress »
/dev/random писал(а): ↑15.10.2009 15:08
Я вижу две открывающие скобки - перед /bin/ls и перед /bin/date - и только одну закрывающую, в конце.
скобки на самом деле есть везде где нужно... это я криво скопипастил. пост поправил
-
/dev/random
- Администратор
- Сообщения: 5404
- ОС: Gentoo
Сообщение
/dev/random »
distress писал(а): ↑15.10.2009 15:11
это я криво скопипастил
Может, не только на форум, но и в кронтаб тоже?
-
distress
- Сообщения: 84
- ОС: RHEL5
Сообщение
distress »
/dev/random писал(а): ↑15.10.2009 16:38
Может, не только на форум, но и в кронтаб тоже?
хорошо бы
но нет там всё правильно

-
distress
- Сообщения: 84
- ОС: RHEL5
Сообщение
distress »
альтернативный вариант без скобок:
Код: Выделить всё
* * * * * cd /var/logs/sql; d=`/bin/date +%Y-%m-%d`; /usr/bin/xz -z -9 -e `/bin/ls | /bin/fgrep -v ".xz" | /bin/fgrep -v $d`
ошибка:
Код: Выделить всё
/bin/sh: -c: line 0: unexpected EOF while looking for matching ``'
/bin/sh: -c: line 1: syntax error: unexpected end of file
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Сообщение
sash-kan »
насколько помню, чего-то там нужно эскейпить. знак процента, кажется.
угу, именно процент:
http://www.hcidata.info/crontab.htm
p.s. кстати, «%Y-%m-%d» эквивалентно «%F».
-
distress
- Сообщения: 84
- ОС: RHEL5
Сообщение
distress »
sash-kan писал(а): ↑15.10.2009 21:42
насколько помню, чего-то там нужно эскейпить. знак процента, кажется.
...
невероятно! теперь всё работет. вот так:
Код: Выделить всё
1 0 * * * cd /var/logs/sql; /usr/bin/xz $(/bin/ls | fgrep -v ".xz" | /bin/fgrep -v $(/bin/date +\%Y-\%m-\%d))
спасибо!
-
t.t
- Бывший модератор
- Сообщения: 7390
- Статус: думающий о вечном
- ОС: Debian, LMDE
Сообщение
t.t »
distress писал(а): ↑16.10.2009 12:05
/usr/bin/xz $(/bin/ls | fgrep -v ".xz" | /bin/fgrep -v $(/bin/date +\%Y-\%m-\%d))
find -maxdepth 1 -daystart -ctime 0 -a ! -name \*.xz | xargs /usr/bin/xz
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж