освободить память после выполнения задачи в cron
Как правильно задавать вопросы Правильно сформулированный вопрос и его грамотное оформление способствует высокой вероятности получения достаточно содержательного и по существу ответа. Общая рекомендация по составлению тем: 1. Для начала воспользуйтесь поиском форума. 2. Укажите версию ОС вместе с разрядностью. Пример: LM 19.3 x64, LM Sarah x32 3. DE. Если вопрос касается двух, то через запятую. (xfce, KDE, cinnamon, mate) 4. Какое железо. (достаточно вывод
inxi -Fxz
в спойлере (как пользоваться спойлером смотрим здесь)) или же дать ссылку на hw-probe 5. Суть. Желательно с выводом консоли, логами. 6. Скрин. Просьба указывать 2, 3 и 4 независимо от того, имеет ли это отношение к вопросу или нет. Так же не забываем об общих правилах Как пример вот
освободить память после выполнения задачи в cron
подскажите пожалуйста: как освобождать память после выполнения задачи. которая запущена в кроне. Вчера добавил задачу в кроне - копирование файлов, а утром память сервера почти закончилась и сервер еле ворочался, пришлось перезагружать
в кроне задача прописана так:
* * * * * /var/www/infobez-site/asukd/copy_req.sh >> /var/log/_cron_auto_copy_req.log
скрипт copy_req.sh запускается каждые 5 секунд
while :; do sleep 5; flock -n /var/tmp/lock1 -c "php /var/www/infobez-site/asukd/auto_copy_req.php" & done
все работает хорошо, только память не освобождается
в кроне задача прописана так:
* * * * * /var/www/infobez-site/asukd/copy_req.sh >> /var/log/_cron_auto_copy_req.log
скрипт copy_req.sh запускается каждые 5 секунд
while :; do sleep 5; flock -n /var/tmp/lock1 -c "php /var/www/infobez-site/asukd/auto_copy_req.php" & done
все работает хорошо, только память не освобождается
-
- Сообщения: 10050
- Зарегистрирован: 27 июн 2017, 13:36
- Решено: 129
- Откуда: Нижний Тагил
- Благодарил (а): 776 раз
- Поблагодарили: 1958 раз
- Контактная информация:
освободить память после выполнения задачи в cron
Только вот у тебя все работало очень плохо, что неудивительно. У тебя каждую минуту запускался скрипт, который в бесконечном цикле каждые 5 секунд что-то делает. Вот поэтому память и кончилась
Чтоб работало хорошо измени скрипт вот так
Код: Выделить всё
flock -n /var/tmp/lock1 -c "php /var/www/infobez-site/asukd/auto_copy_req.php"
Код: Выделить всё
* * * * * /var/www/infobez-site/asukd/copy_req.sh >> /var/log/_cron_auto_copy_req.log
-
- Сообщения: 10050
- Зарегистрирован: 27 июн 2017, 13:36
- Решено: 129
- Откуда: Нижний Тагил
- Благодарил (а): 776 раз
- Поблагодарили: 1958 раз
- Контактная информация:
освободить память после выполнения задачи в cron
SergMir, если правильно тебя понял - ты хочешь чтоб при запуске сервера запустился скрипт, который что-то делает каждые 5 секунд.
Тогда оставь свой скрипт как есть.
Убери задачу из cron.
И сделай systemd-unit, который будет подниматься, скажем, после поднятия сети и запускать твой скрипт. И это будет происходить единожды.
А скрипт уже будет каждые 5 секунд что-то там делать.
Как написать systemd-unit в сети полно информации, да и тут на форуме это обсуждалось ни один раз
Тогда оставь свой скрипт как есть.
Убери задачу из cron.
И сделай systemd-unit, который будет подниматься, скажем, после поднятия сети и запускать твой скрипт. И это будет происходить единожды.
А скрипт уже будет каждые 5 секунд что-то там делать.
Как написать systemd-unit в сети полно информации, да и тут на форуме это обсуждалось ни один раз
-
- Сообщения: 4506
- Зарегистрирован: 21 июн 2017, 18:09
- Решено: 99
- Благодарил (а): 51 раз
- Поблагодарили: 1993 раза
- Контактная информация:
освободить память после выполнения задачи в cron
Опять удаляют гланды через это самое, и жалуются - что неудобно...
SergMir, Решение которое вы привели нормально работать не будет в принципе - запуск из цикла приводит к тому, что не завершается задача и висят занятые ей ресурсы.
И здесь чтобы что-то советовать, нужно знать чем таким auto_copy_req.php занимается, что его раз в пять секунд запускать нужно. По сути - тут уже скорее постоянно работающего демона писать надо под задачу, а не скрипт дергать с такой частотой.
SergMir, Решение которое вы привели нормально работать не будет в принципе - запуск из цикла приводит к тому, что не завершается задача и висят занятые ей ресурсы.
И здесь чтобы что-то советовать, нужно знать чем таким auto_copy_req.php занимается, что его раз в пять секунд запускать нужно. По сути - тут уже скорее постоянно работающего демона писать надо под задачу, а не скрипт дергать с такой частотой.
освободить память после выполнения задачи в cron
Задача в том, чтобы организовать сканирование каталога каждые 5 секунд и при наличии в нем файлов - копирование в другое место. Этим скрипт и занимается
-
- Сообщения: 5936
- Зарегистрирован: 16 дек 2017, 21:59
- Решено: 37
- Откуда: Феодосия
- Благодарил (а): 32 раза
- Поблагодарили: 750 раз
- Контактная информация:
освободить память после выполнения задачи в cron
Если написано без ошибок, то это самая тупая задача. Файлы там будут всегда , после первого файла. Может имеется ввиду , если появятся новые файлы , или что то в этом роде. Или не копировать а переносить.
-
- Сообщения: 5936
- Зарегистрирован: 16 дек 2017, 21:59
- Решено: 37
- Откуда: Феодосия
- Благодарил (а): 32 раза
- Поблагодарили: 750 раз
- Контактная информация:
освободить память после выполнения задачи в cron
Привет, это Bing. Я могу помочь вам с написанием скрипта на bash для linux. Вот один из возможных вариантов решения вашей задачи:
Надеюсь, это вам поможет.
Код: Выделить всё
#!/bin/bash
# Скрипт для сканирования каталога и копирования файлов
# Указать исходный и целевой каталоги
source_dir="/path/to/source/dir"
target_dir="/path/to/target/dir"
# Бесконечный цикл с задержкой в 5 секунд
while true
do
# Проверить, есть ли файлы в исходном каталоге
if [ "$(ls -A $source_dir)" ]; then
# Если есть, то скопировать их в целевой каталог
cp -v $source_dir/* $target_dir
fi
# Подождать 5 секунд
sleep 5
done
Последний раз редактировалось пользователем 1 Dja; всего редактировалось раз: 24
Причина: bb-codes
Причина: bb-codes
-
- Сообщения: 4506
- Зарегистрирован: 21 июн 2017, 18:09
- Решено: 99
- Благодарил (а): 51 раз
- Поблагодарили: 1993 раза
- Контактная информация:
освободить память после выполнения задачи в cron
Это не задача, а реализация ее решения.
Задача - это совокупность того, из-за чего у вас там вообще файлы появляются, куда их нужно копировать/переносить, и почему обязательно раз в 5 секунд, а не устраивает хотя бы минутный интервал.
Понимаете в чем дело. Пока я вижу что-то вроде:
- Помогите - кода я себе в ногу стреляю мне больно и кровь идет!
- А в чем ваша задача?
- Задача: Нужно выстрелить так, чтобы не больно было!
А на самом деле - комар садится на ногу, кусается - и чел его пристрелить пытается. А задача, на самом деле у него - чтобы комар не кусал. Решается, например, репеллентом.
освободить память после выполнения задачи в cron
да, не копирование а перенос файлов
освободить память после выполнения задачи в cron
спасибо!symon2014 писал(а): ↑23 ноя 2023, 17:41Привет, это Bing. Я могу помочь вам с написанием скрипта на bash для linux. Вот один из возможных вариантов решения вашей задачи:
Надеюсь, это вам поможет.Код: Выделить всё
#!/bin/bash # Скрипт для сканирования каталога и копирования файлов # Указать исходный и целевой каталоги source_dir="/path/to/source/dir" target_dir="/path/to/target/dir" # Бесконечный цикл с задержкой в 5 секунд while true do # Проверить, есть ли файлы в исходном каталоге if [ "$(ls -A $source_dir)" ]; then # Если есть, то скопировать их в целевой каталог cp -v $source_dir/* $target_dir fi # Подождать 5 секунд sleep 5 done
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя