Сжимать файл по крону

1 234
Д
На сайте с 01.04.2012
Offline
152
#21

Попробуйте использовать system('команда') в php. Что нужно сжать и как сохранить полные пути. php файл на крон.

PS. Тоже как то задавался подобным вопросом. Решил использовать php+cron:


copy("http://ipgeobase.ru/files/db/Main/geo_files.zip","geo_files.zip");
unlink("cidr_optim.txt");
unlink("cities.txt");
system("unzip geo_files.zip");
VPN/SSD VPS в любой локации на выбор ( https://cp.inferno.name/cart.php ). Скидка 25% для новых заказов по промо-коду: TEAM
T
На сайте с 09.12.2011
Offline
55
tls
#22
Dram:
Ночью крон так и не сработал. В логе написано это:

Aug 19 02:30:01 ng CRON[18682]: (root) CMD (root gzip -f /var/www/ru/xml/rss.xml >/dev/null 2>&1)

А должно было быть:

Aug 19 02:30:01 ng CRON[18682]: (root) CMD (gzip -f /var/www/ru/xml/rss.xml >/dev/null 2>&1)

D
На сайте с 28.06.2008
Offline
1108
#23

tls - так что не так? Задания в кроне нужно проспиать без root ?

Оптимизайка
На сайте с 11.03.2012
Offline
396
#24

Dram, please show

crontab -l

and

cat /etc/crontab

P.S. System-wide /etc/crontab file should have username, i.e. root. Per-user crontab shouldn't have username. See https://ru.wikipedia.org/wiki/Cron

⭐ BotGuard (https://botguard.net) ⭐ — защита вашего сайта от вредоносных ботов, воровства контента, клонирования, спама и хакерских атак!
D
На сайте с 28.06.2008
Offline
1108
#25

crontab -l


30 6 * * * root gzip -f /var/www/ru/xml/rss.xml >/dev/null 2>&1

cat /etc/crontab

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#
AGHost
На сайте с 16.11.2011
Offline
115
#26

Dram, если меняете по crontab -e, то там не надо указывать имя пользователя, который запускает процесс, удалите root и лучше пропишите полный путь к gzip

30 6 * * * root gzip -f /var/www/ru/xml/rss.xml >/dev/null 2>&1

8 лет на рынке услуг хостинга - https://agho.st (https://agho.st)
pupseg
На сайте с 14.05.2010
Offline
364
#27
AGHost:
Dram, если меняете по crontab -e, то там не надо указывать имя пользователя, который запускает процесс, удалите root и лучше пропишите полный путь к gzip

30 6 * * * root gzip -f /var/www/ru/xml/rss.xml >/dev/null 2>&1

ну хоть кто то ....

[root@web1 ~]# crontab -h

usage: crontab [-u user] file
crontab [-u user] [ -e | -l | -r ]
(default operation is replace, per 1003.2)
-e (edit user's crontab)
-l (list user's crontab)
-r (delete user's crontab)
-i (prompt before deleting user's crontab)
-s (selinux context)
[root@web1 ~]#

crontab -e вызывает редактор и редактирует крон текущего пользователя. После сохранения изменения вступают в силу сразу.

/etc/crontab - файл конфигурации самого демона crond , после его редактирования нужно дергать демон. В нем же и указывается имя пользователя, от которого запускается команда. Так как crond - туповат, то ему нужно объяснить более вдумчиво - что ему нужно сделать.

делаем себе удобный редактор, все привыкли к mc и его редактору ,его и поставим:

export EDITOR=mcedit 

crontab -e
30 2 * * * cd /path/to/dir/where/is/my/file;/bin/gzip -f rss.xml <тут не забываем нажать ентер для перехода на новую строку>

сохраняем, выходим. Напишет installing new crontab. Если что-то crontab'у не понравится - должен ругнуться.

Качественная помощь в обслуживании серверов. (/ru/forum/661100) Бесплатных консультаций не даю, не помогаю, не обучаю. Минималка от 100$. Как пропатчить KDE-просьба не спрашивать. Есть форумы (http://linux.org.ru) и полезные сайты (http://www.opennet.ru/).
D
На сайте с 28.06.2008
Offline
1108
#28

В общем не понятно что-то:

есть еще один сервер тоже с Дебиан 8,только там еще и панель ISP. Там в панели вбиваю задание gzip -f /var/www/ru/xml/rss.xml выставляю нужный час (чисто для проверки) - в итоге задание в файле выглядит так

30 6 * * * gzip -f /var/www/ru/xml/rss.xml >/dev/null 2>&1

и оно прекрасно срабатывает

точно такое же задание копирую из этого файла, на проблемном сервере вбиваю

crontab -e

мотаю стрелкой вниз (редактор vim) буквой x очищаю строку, кликаю правой кнопкой мыши - ставляется часть скопированного задания (баг такой чтоли не понятно).

Удаляю этот хвост клавишей Backspace, опять кликаю правой кнопкой мыши - теперь задание вставляется правильно, нажимаю Esc, потом 2 раза шифт + Z

Путти выходит из редактора.

Смотрю crontab -l задание записано 1 в 1 на как сервере с панелью, но не срабатывает хоть убей.

Выше этого задания в файле есть еще задания типа

*/05 * * * * wget -O /dev/null "http://www.site.ru/index.php?option=com_share&view=cron&format=raw" >/dev/null 2>&1

которые продолжают выполняться без проблем!

В чем косяк?

Andreyka
На сайте с 19.02.2005
Offline
822
#29

Ваш софт не создает файл в нужное время

Вы вызываете wget на старом сервере

У вас не запущен cron

Не стоит плодить сущности без необходимости
D
На сайте с 28.06.2008
Offline
1108
#30

Я создал тестовый файл, так тчо файл на месте

Про вгет не понял, они вызываются с этого же сервера

Крон запущен, я перезапускал его, ну и задания выше отрабатываются.

1 234

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий