salve,
nu e mai simplu un
mail [EMAIL PROTECTED] -s "new user: `tail -1 /etc/passwd | cut -f1 -d
':'`"</dev/null
jk
Bogdan Marinca wrote:
> On Sun, 11 Mar 2001, Cosmin Chiru wrote:
>
> >
> > Salut!
> >
> > Am si eu o problema. Vreau sa fac un program (c, bash) care in momentul
> > in care este creeat un nou cont pe server, sa fie trimis un mail la un
> > user (nu neaparat root) in care sa fie specificat numele contului si
> > numele celui care l-a facut. Se poa` asa ceva?
> > T.I.A
> >
> > ------
> > Chiru Cosmin
> > http://ovid.rdsct.ro/~cosminc
> >
>
> Salve.
>
> Eu am facut un mic program C care citeste periodic ultima linie adaugata
> la /etc/passwd si o trimite printr`un mail la o anumita adresa
> specificata.
>
> Vezi daca te potzi folosi cumva cu el ...
>
> include <sys/types.h>
> #include <unistd.h>
> #include <fcntl.h>
> #include <stdlib.h>
> #include <errno.h>
> extern int errno; /** dummy **/
>
> #define LINE_L 512
> #define SYSTEM_CMD_L 248
> #define SEC_TO_SLEEP 2 /* potzi alege mai mult: 10, 180
> ... */
> #define PASSWD_FILE "/etc/passwd"
> #define MAIL_ADDR "[EMAIL PROTECTED]" /* adresa de mail folosita */
>
> int main () {
> int err, fd, file_length_old = 0, file_length, index;
> char c;
> char line_buff [LINE_L + 0x10];
> char system_cmd_buff [SYSTEM_CMD_L];
> do {
> fd = open (PASSWD_FILE, O_RDONLY, 0644);
> if (fd < 0) {
> perror (PASSWD_FILE);
> return 1;
> }
> file_length = lseek (fd, 0, SEEK_END);
> if (file_length_old == 0) /* first time */
> { file_length_old = file_length; close (fd); continue; }
> if (file_length < 0) goto FILE_ERR;
> if (file_length > file_length_old) {
> err = lseek (fd, file_length_old, SEEK_SET);
> if (err < 0) goto FILE_ERR;
> index = 0;
> do {
> do {
> err = read (fd, &c, 1);
> if (err < 0) {
> if (errno != EINTR) goto FILE_ERR;
> usleep (10); /** EINTR **/
> }
> else break;
> } while (1);
> if (err == 0 || c == '\n') break;
> line_buff [index++] = c;
> } while(index < LINE_L);
> line_buff [index] = 0x00;
> strcpy (system_cmd_buff, "echo '");
> strcat (system_cmd_buff, line_buff);
> strcat (system_cmd_buff, "' | mail -s 'New user was created!'
> ");
> strcat (system_cmd_buff, MAIL_ADDR);
> system (system_cmd_buff);
> /*DEBUG printf ("%s\n", system_cmd_buff); */
> }
> file_length_old = file_length;
> close (fd);
> sleep (SEC_TO_SLEEP);
> } while (1);
> /* return 0; */
> FILE_ERR:
> perror (PASSWD_FILE);
> close (fd);
> return 2;
> }
> /* vim ts=2 */
>
> Bogdan M.
>
> ---
> Send e-mail to '[EMAIL PROTECTED]' with 'unsubscribe rlug' to
> unsubscribe from this list.
---
Send e-mail to '[EMAIL PROTECTED]' with 'unsubscribe rlug' to
unsubscribe from this list.