linuxÎļþϵͳ±ä»¯Í¨Öª»úÖÆ
Ò»¡¢dnotify»úÖÆ
1¡¢Ê¹ÓÃ
ͨ¹ý¶ÔÎļþÃèÊö·ûÉèÖüàÌýÐźÅʵÏÖ¡£
//ÉèÖÃÎļþÏàÓ¦ÐźÅ
fcntl(fd, F_SETSIG, SIGRTMIN + 1);
//ÉèÖøÃÎļþÒª¼àÌýʼþ
fcntl(fd, F_NOTIFY, DN_ACCESS|DN_MODIFY|DN_CREATE|DN_RENAME|DN_DELETE|DN_ATTRIB|DN_MULTISHOT);
ʣϵľÍÊÇÐźŴ¦ÀíÁË¡£
2¡¢È±µã
ȱµã1£ºdnotify»úÖÆ¶Ô¼àÊÓµÄÿ¸öÎļþ¼Ð¶¼´ò¿ªÁËÒ»¸öÎļþÃèÊö·û£¬Èç¹ûÎļþ¼ÐËùÔÚÎļþϵͳÐèÒªumount¾Í²»ÐÐÁË¡£
ȱµã2£ºdnotify»úÖÆÖ»ÄܶÔÎļþ¼Ð½ø³Ì¼àÊÓ¡£
3¡¢Ó¦ÓÃ
Àý×Ó£º
//ÒªÓÃfcntl( fd, F_SETSIG, SIGRTMIN + 1 )¾ÍÒªÉèÖÃÕâ¸öºê
#define _GNU_SOURCE 1
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>
#include <signal.h>
#define FOLDER_MAXLEN 128
static char listen_folder[FOLDER_MAXLEN];
static void myhandler( int );
int set_folder_signal( void )
{
struct sigaction act;
int fd;
act.sa_handler = myhandler;
sigemptyset( &act.sa_mask );
act.sa_flags = 0;
sigaction( SIGRTMIN + 1, &act, NULL );
if(( fd = open( listen_folder, O_RDONLY )) < 0 )
return -1;
printf( "fd=%d\n", fd );
fcntl( fd, F_SETSIG, SIGRTMIN + 1 );
fcntl( fd, F_NOTIFY, DN_CREATE );
return 0;
}
int main(int argc, char *argv[] )
{
if( argc != 2 )
{
printf( "%s filepath\n", argv[0] );
exit( 0 );
}
strncpy( listen_folder, argv[1], FOLDER_MAXLEN - 1 );
if( set_folder_signal( ) < 0 )
{
printf( "set signal to %s fail\n", argv[1] );
exit( 0 );
}
while( 1 )
{
pause();
printf( "a signal return\n" );
}
}
static void myhandler( int signo )
{
printf( "signalno=%d,a file was creat\n", signo );
set_folder_signal();
}
ÒÔÉÏÀý×ÓÐźŴ¦Àíº¯ÊýÖ»Äܵõ½ÐźűàºÅÐÅÏ¢¡£¿ÉÒÔͨ¹ýsa_sigactionÐźŴ¦Àíº¯ÊýÀ´»ñµÃ¸ü¶àÐÅÏ¢£¬µ«Ò²ºÜÓÐÏÞ¡£±ÈÈçÎļþÃèÊö·û¡£
Àý×Ó£º
//ÒªÓÃfcntl( fd, F_SETSIG, SIGRTMIN + 1 )¾ÍÒªÉèÖÃÕâ¸öºê
#define _GNU_SOURCE 1
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>
#include <
Ïà¹ØÎĵµ£º
¡¡ÒÔroot Éí·ÝµÇ½Linux ·þÎñÆ÷£¬±à¼/etc Ŀ¼ÏµĹ²ÏíĿ¼ÅäÖÃÎļþexports£¬Ö¸¶¨¹²ÏíĿ¼¼°È¨Ï޵ȡ£
¡¡
¡¡Ö´ÐÐÈçÏÂÃüÁî±à¼Îļþ/etc/exports£º
¡¡¡¡# vi /etc/exports
¡¡¡¡ÔÚ¸ÃÎļþÀïÌí¼ÓÈçÏÂ
ÄÚÈÝ£º
¡¡¡¡/home/work 192.168.0.*£¨rw,sync,no_root_squash£©
¡¡¡¡È»
ºó±£´æÍ˳ö¡£
¡¡¡¡Ìí¼ÓµÄÄÚÈݱíʾ£ºÔÊÐí ......
¡¡1.1¡¢ÓÃrootÓû§µÇ¼£¬½øÈëÖÕ¶ËÃüÁîģʽ£»
¡¡¡¡1.2¡¢¿ªÆôftp·þÎñ¡£
¡¡¡¡cd /etc/xinetd.d £¬±à¼ftp·þÎñµÄÅäÖÃÎļþgssftpµÄÉèÖãº
¡¡¡¡¿ªÆôftp·þÎñÉèÖÃ.
¡¡¡¡vi gssftp £¬½« ÐÞ¸ÄÁ½ÏîÄÚÈÝ£º
¡¡¡¡£¨1£©server_args = -l –a È¥µô-a ¸ÄΪserver_args = -l
¡¡¡¡£¨2£©disable=yes¸ÄΪdisable=no
¡¡¡¡£¨3£©±£´æÍ˳ ......
# cd /home/tmp (½øÈëѹËõ°üËùÔÚĿ¼)
# groupadd mysql (½¨Á¢mysql×é)
# useradd -g mysql mysql (ÔÚmysql×éÖн¨Á¢mysqlÓû§)
# tar -zxvf mysql-5.0.37.tar.gz (½âѹmysqlÔ´Âë,bz2ѹËõ°üÇëÓÓtar -jvxf ÎļþÃû”Ö¸Áî)
# cd mysql-5.0.37 (½øÈë½âѹĿ¼)
# ./configure --prefix=/usr/local/mysql (p ......
-Ëᦻª(Barry Song)
Linux¾ßÓÐÓÕÈ˵Ä÷ÈÁ¦£¬ËüÊÇÒ»¸öÓÉÈ«ÊÀ½ç²»Í¬Ãñ×å¡¢²»Í¬ÐÅÑö¡¢²»Í¬ÐÔ±ðµÄÈ˹²Í¬²ÎÓëºÍÐ×÷µÄ¹ú¼ÊÐÔÏîÄ¿¡£LinuxÃâ·ÑÌṩԴ´úÂ룬²¢ÇÒ¾ßÓÐÓëUnixÀàËÆµÄΪÈËÃÇËùÊìϤµÄÓ¦ÓóÌÐò±à³Ì»·¾³£¬ÕâÒ»ÇÐÔì¾ÍÁËËü½ñÌìµÄ¾Þ´ó³É¹¦¡£Í¨¹ý»¥ÁªÍø´Óר¼Ò´¦¼´Ê±»ñµÃµÄ¸ßÖÊÁ¿µÄÃâ·ÑÖ§³ÖÒ²·¢»ÓÁËÖØÒª× ......
-Ëᦻª£¨Barry Song£©
ÔÚ¿ªÊ¼²½ÈëLinuxÉ豸Çý¶¯³ÌÐòµÄÉñÃØÊÀ½ç֮ǰ£¬ÈÃÎÒÃÇ´ÓÇý¶¯³ÌÐò¿ª·¢ÈËÔ±µÄ½Ç¶È¿´¼¸¸öÄں˹¹³ÉÒªËØ£¬ÊìϤһЩ»ù±¾µÄÄں˸ÅÄî¡£ÎÒÃǽ«Ñ§Ï°Äں˶¨Ê±Æ÷¡¢Í¬²½»úÖÆÒÔ¼°ÄÚ´æ·ÖÅä·½·¨¡£²»¹ý£¬ÎÒÃÇ»¹ÊǵôÓÍ·¿ªÊ¼Õâ´Î̽Ë÷Ö®Âá£Òò´Ë£¬±¾ÕÂÒªÏÈä¯ÀÀÒ»ÏÂÄں˷¢³öµÄÆô¶¯ÐÅÏ¢£¬È»ºóÔÙÖð¸ö½²½âһЩÓÐÒâ˼µÄµã¡£
......