#!/bin/bash
CYCLE=600 # seconds
if [ -d "$1" ]
then
INBOX=$1
else
echo "Usage: sh script [inbox]"
exit 1
fi
while (true)
do
NEW_LIST=$( ls -1 $INBOX )
if [ ${#NEW_LIST} -gt 0 ] && [ ${#OLD_LIST} -gt 0 ]
then
for ENTRY in $NEW_LIST
do
if [ $( echo "$OLD_LIST" | grep "$ENTRY" ) ]
then
echo "Delinquent: $ENTRY"
exit 2 # alert substitute
fi
done
fi
OLD_LIST=$NEW_LIST
sleep $CYCLE
done
# game over
Hi I need the commands that will enable me to monitor the files in a directory, preferably by date of the file and copy those files that have changed to a new directory.
Please can someone help?
Many thnaks in advance
Kind regards from
Pete (3 Replies)
Hi i am am monitioring a file every 60 seconds and checking if the file has changed and if it has changed i append the changes to another file. i am able to monitior the change in file size but i have a problem copying the changes made in the file to another file. i am using lseek to seek the last... (1 Reply)
hi all
in my server all the users have the same paswd like "abc" .... i need to keep track of who changes the files using the ip addressess.... so once when a person logs in .. i need to monitor the actions or the files chagned by that person and store it in a log file .. can some one help me... (2 Replies)
Hi,
I ned to monitor the tomcat log file called "catalina.out" for "Out of memory" error.
the script should monitor this file and send us the mail as soon as it finds the string "Out of memory" in the file.
can ypu suggest me which is the best way to do this? (4 Replies)
I have an event log which is a circular file. I would like to be able to see real-time updates of that event log. Kind of the equivalent of a 'tail -f'. But obviously 'tail -f' won't work if my circular file has already cycled over. Any ideas as to how I can do this? Let me know if I am clear.... (10 Replies)
Team,
Attached 2 scripts for your validation(main script,mail script)
Problem description:
When its red it should wait for 10 seconds and then send a mail. If not red it should not send the mail
i have done the below changes in the main script:
if
then
if ... (4 Replies)
I am getting errors when I try to run the script I just made, any suggestiongs would be helpful. Please be gentle, Im still a newbie and learning on the go at an entry level position.
#!/usr/bin/ksh
# PURPOSE: This script is going to view the top 10 largest home directory Folders, then go in each... (11 Replies)
Hi guys today i have new situation to resolve.
I need to create a script that the first part it's already done but the problem appear when i run
other sart_script inside of it.
i need to check a log file until it stop after run the star script
when the log file stop write, then make a copy file... (1 Reply)
Hi guys today i have new situation to resolve.
I need to create a script that the first part it's already done but the problem appear when i run
other sart_script inside of it.
i need to check a log file until it stop after run the star script
when the log file stop write, then make a copy file... (2 Replies)
Discussion started by: Newer
2 Replies
LEARN ABOUT REDHAT
hsearch
HSEARCH(3) Linux Programmer's Manual HSEARCH(3)NAME
hcreate, hdestroy, hsearch - hash table management
SYNOPSIS
#include <search.h>
int hcreate(size_t nel);
ENTRY *hsearch(ENTRY item, ACTION action);
void hdestroy(void);
#define _GNU_SOURCE
#include <search.h>
int hcreate_r(size_t nel, struct hsearch_data *tab);
int *hsearch_r(ENTRY item, ACTION action, ENTRY **ret, struct hsearch_data *tab);
void hdestroy_r(struct hsearch_data *tab);
DESCRIPTION
The three functions hcreate, hsearch, and hdestroy allow the user to create a hash table (only one at a time) which associates a key with
any data. The three functions hcreate_r, hsearch_r, hdestroy_r are reentrant versions that allow the use of more than one table.
First the table must be created with the function hcreate(). The argument nel is an estimate of the maximum number of entries in the ta-
ble. The function hcreate() may adjust this value upward to improve the performance of the resulting hash table.
The corresponding function hdestroy() frees the memory occupied by the hash table so that a new table can be constructed.
The argument item is of type ENTRY, which is a typedef defined in <search.h> and includes these elements:
typedef struct entry {
char *key;
void *data;
} ENTRY;
The field key points to the NUL-terminated string which is the search key. The field data points to the data associated with that key.
The function hsearch() searches the hash table for an item with the same key as item (where "the same" is determined using strcmp(3)), and
if successful returns a pointer to it. The argument action determines what hsearch() does after an unsuccessful search. A value of ENTER
instructs it to insert a copy of item, while a value of FIND means to return NULL.
RETURN VALUE
hcreate() and hcreate_r() return 0 when allocation of the memory for the hash table fails, nonzero otherwise.
hsearch() returns NULL if action is ENTER and the hash table is full, or action is FIND and item cannot be found in the hash table.
hsearch_r() returns 0 if action is ENTER and the hash table is full, and nonzero otherwise.
ERRORS
ENOMEM Out of memory.
CONFORMS TO
The functions hcreate, hsearch, and hdestroy are from SVID, and are described in POSIX 1003.1-2001. The functions hcreate_r, hsearch_r,
hdestroy_r are GNU extensions.
BUGS
SVID and POSIX 1003.1-2001 specify that action is significant only for unsuccessful searches, so that an ENTER should not do anything for a
successful search. The libc and glibc implementations update the data for the given key in this case.
Individual hash table entries can be added, but not deleted.
EXAMPLE
The following program inserts 24 items in to a hash table, then prints some of them.
#include <stdio.h>
#include <search.h>
char *data[] = { "alpha", "bravo", "charlie", "delta",
"echo", "foxtrot", "golf", "hotel", "india", "juliet",
"kilo", "lima", "mike", "november", "oscar", "papa",
"quebec", "romeo", "sierra", "tango", "uniform",
"victor", "whisky", "x-ray", "yankee", "zulu"
};
int main() {
ENTRY e, *ep;
int i;
/* starting with small table, and letting it grow does not work */
hcreate(30);
for (i = 0; i < 24; i++) {
e.key = data[i];
/* data is just an integer, instead of a
pointer to something */
e.data = (char *)i;
ep = hsearch(e, ENTER);
/* there should be no failures */
if (ep == NULL) {
fprintf(stderr, "entry failed
");
exit(1);
}
}
for (i = 22; i < 26; i++) {
/* print two entries from the table, and
show that two are not in the table */
e.key = data[i];
ep = hsearch(e, FIND);
printf("%9.9s -> %9.9s:%d
", e.key,
ep ? ep->key : "NULL",
ep ? (int)(ep->data) : 0);
}
return 0;
}
SEE ALSO bsearch(3), lsearch(3), tsearch(3), malloc(3)GNU 2001-12-26 HSEARCH(3)