Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.64/33: Рейтинг темы: голосов - 33, средняя оценка - 4.64
2 / 2 / 0
Регистрация: 07.06.2011
Сообщений: 62

Создать демон, проверяющий факт модификации файлов

07.06.2011, 17:21. Показов 7032. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите закончить программу под линукс
Нужно написать демон под линукс который бы проверял заданий каталог каждые 3 мин. на придет наличия ,отсутствия и модификации файлов и записывал результаты в лог файл (лудше всего что б было 2 отдельных процесса которые вели б 2 отдельных лога) был написан демон
но как заставить выполнять нужное мне действия вместо выполнения команды я не знаю с линуксом дела не имела (((

склет демона :

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <sys/time.h>
#include <unistd.h>
#include <errno.h>
#include <fcntl.h>
#include <syslog.h>
 
int Daemon(void);
char* getTime();
int writeLog(char msg[256]);
char* getCommand(char command[128]);
 
char* getTime() { //функция возвращает форматированную дату и время
time_t now;
struct tm *ptr;
static char tbuf[64];
bzero(tbuf,64);
time(&now);
ptr = localtime(&now);
strftime(tbuf,64, "%Y-%m-%e %H:%M:%S", ptr);
return tbuf;
}
 
char* getCommand(char command[128]) { //функция возвращает результат выполнения linux команды
FILE *pCom;
static char comText[256];
bzero(comText, 256);
char buf[64];
pCom = popen(command, "r");
if(pCom == NULL) {
writeLog("Error Command");
return "";
}
strcpy(comText, "");
while(fgets(buf, 64, pCom) != NULL) {
strcat(comText, buf);
}
pclose(pCom);
return comText;
}
 
int writeLog(char msg[256]) { //функция записи строки в лог
FILE * pLog;
pLog = fopen("/home/CENTRAL/skan/daemon/daemon.log", "a");
if(pLog == NULL) {
return 1;
}
char str[312];
bzero(str, 312);
strcpy(str, getTime());
strcat(str, " ==========================\n");
strcat(str, msg);
strcat(str, "\n");
fputs(str, pLog);
//fwrite(msg, 1, sizeof(msg), pLog);
fclose(pLog);
return 0;
}
 
int main(int argc, char* argv[]) {
writeLog("Daemon Start");
 
pid_t parpid, sid;
 
parpid = fork(); //создаем дочерний процесс
if(parpid < 0) {
exit(1);
} else if(parpid != 0) {
exit(0);
}
umask(0);//
sid = setsid();//генерируем уникальный индекс процесса
if(sid < 0) {
exit(1);
}
if((chdir("/")) < 0) {
exit(1);
}
close(STDIN_FILENO);
close(STDOUT_FILENO);
close(STDERR_FILENO);
 
return Daemon();
}
 
int Daemon(void) {
char *log;
while(1) {
log = getCommand("who");
if(strlen(log) > 5) {
writeLog(log);
}
sleep(600);
}
return 0;
}
Буду очень благодарна есле кто поможет(
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.06.2011, 17:21
Ответы с готовыми решениями:

Нужно создать демон....как?
задача. Создать процесс работающий от рута, постоянно работающий (это демон будет). И создать exec файл, который при запуске НЕ от...

Переименование файлов по дате модификации
Добрый день. Помогите с BAT файлом. Требования Скрипт должен переименовывать файлы типа ABC_XXXX.jpg в файлы YY_MM_DD.jpg где YY_MM_DD -...

Защита файлов флешки от модификации
Подскажите, народ, как установить элементарнейшую защиту от записи. Нужно потестить проги с флехи. Одно из условий чтобы эти проги не...

24
2 / 2 / 0
Регистрация: 07.06.2011
Сообщений: 62
20.06.2011, 16:01  [ТС]
Студворк — интернет-сервис помощи студентам
некто не хочет показать как реалезовать вашу процедуру внутри мого демона
0
Формучанин
364 / 296 / 42
Регистрация: 02.11.2010
Сообщений: 1,245
20.06.2011, 16:19
Цитата Сообщение от Anya) Посмотреть сообщение
некто не хочет показать как реалезовать вашу процедуру внутри мого демона
сочувствую) но всем лень
0
2 / 2 / 0
Регистрация: 07.06.2011
Сообщений: 62
20.06.2011, 17:54  [ТС]
фее лень эт плоха показали б я б наконец сдала б уже((
0
2 / 2 / 0
Регистрация: 07.06.2011
Сообщений: 62
28.06.2011, 17:55  [ТС]
всё сделала и сдала эту каку всем спасибо)
1
2 / 2 / 0
Регистрация: 10.05.2012
Сообщений: 45
14.06.2012, 18:46
Так выложите код, чтобы все могли поучиться.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.06.2012, 18:46
Помогаю со студенческими работами здесь

Определить факт пересечения объектов и факт включения одного объекта в другой
Создается много плоских фигур(прямо, квадраты и другие) вершины задаются координатами. Помогите пожалуйста определить факт пересечения...

Доработать скрипт, проверяющий существование файлов, введенных в командной строке
И еще вопрос. Написал скрипт, который проверяет существование файлов введенных в командной строке. Все работает правильно. Писал с...

Удаления файлов с определенной датой модификации
Доброго времени суток! Суть задачи такова, необходимо написать скрипт, который удалял бы в папке файлы определенной даты модификации....

Как создать проверяющий файл?
Допусти у нас есть откомпилированный файл &quot;time.cpp&quot;. И есть куча тестов: &quot;1.a&quot;(ответ в &quot;1&quot;), &quot;2.а&quot;(ответ в &quot;2) и...

Создать поток, проверяющий состояние каталога
Необходимо написать приложение, которое контролирует состояние файлов в некоторой директории. Обработчик сообщений окна: LRESULT...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
25
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru