cronjob для очистки файла в каталоге

Hexdump ничего не знает об адресах (или памяти ). Он просто печатает поток байтов и добавляет к нему префикс с количеством байтов, просмотренных до сих пор. Если его ввод поступает из файла, эти числа, таким образом, соответствуют позиции в файле.

Чтобы выяснить, где эти байты оказываются в памяти после загрузки файла, необходимо просмотреть метаданные в файле. Для файлов ELF это означает заголовки разделов (, а иногда и заголовки программ ).

readelf -S path/to/your/binaryпоказывает что-то вроде этого:

Section Headers:
  [Nr] Name              Type             Address           Offset
       Size              EntSize          Flags  Link  Info  Align
…
  [13].text             PROGBITS         000000000050eac0  0010eac0
       0000000001833275  0000000000000000  AX       0     0     16
…

Здесь значение в разделе «Смещение» — это позиция в файле, где начинается конкретный раздел, а значение в разделе «Адрес» — это соответствующий виртуальный адрес (, где он заканчивается в памяти ). Вам просто нужно добавить разницу между этими двумя числами из hexdump, чтобы получить адреса.

Вы также можете использовать objdump -h path/to/your/binaryдля получения тех же данных:

Sections:
Idx Name          Size      VMA               LMA               File off  Algn
…
 12.text         01833275  000000000050eac0  000000000050eac0  0010eac0  2**4
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
…

Опять же,«File off» — это смещение в файле, а «VMA» — соответствующий виртуальный адрес. Если вам интересно, что такое «LMA», посмотрите здесь .

0
16.04.2021, 00:50
1 ответ

Вы можете настроить crontab для идентификатора пользователя, который запускает процесс apache, или под идентификатором root, где запись crontab будет выглядеть как:

@daily     cd /var/domlogs; > logfile.log

Вам не нужно создавать сценарий оболочки для такой простой задачи, как эта; просто разделяйте команды символом ;.

@daily — это расширение GNU, запускаемое ежедневно в полночь; вы можете посмотреть https://crontab.guru/, чтобы поиграть с различными параметрами.

Для более точного времени, скажем, в понедельник, среду и пятницу в 2 :30 утра, попробуйте:

 30 2 * * 1,3,5   cd /var/domlogs; > logfile.log

А вот кое-что, что я поместил в crontab (в качестве комментариев, для crontab #— это комментарий, как сценарии оболочки):

#Minute   Hour    Day     Month   Wkday   UnixCmd
#0-59     0-23    1-31    1-12    0-7     UnixCmd

Чтобы настроить задание cron для текущего пользователя, просто используйте crontab -e, который вызовет редактор для ввода вышеуказанных команд.

Теперь, для более сложных задач, просто помните о различных ограничениях в заданиях cron. Начальная среда имеет очень ограниченную среду, настроенную до PATHи т. д. И когда запускается задание cron, если выходные данные не перенаправляются в выходной файл, стандартный вывод и стандартная ошибка задачи будут отправлены по электронной почте в пользователь, настроивший cron.

2
28.04.2021, 22:52

Теги

Похожие вопросы