linuxlinux ftp服务器配置上如何实时获取新增文

扫一扫体验手机阅读
Linux下Rsync+Inotify-tools实现数据实时同步
<span type="1" blog_id="1761314" userid='
205篇文章,40W+人气,1粉丝
高并发架构之路
¥51.0039人订阅
前百度高级工程师的架构高可用实战
¥51.00222人订阅
<span type="1" blog_id="1761314" userid='如何实时查看linux下的日志_百度知道
如何实时查看linux下的日志
我有更好的答案
cat /var/log/*.log如果日志在更新,如何实时查看 tail -f /var/log/messages还可以使用 watch -d -n 1 cat /var/log/messages-d表示高亮不同的地方,-n表示多少秒刷新一次。该指令,不会直接返回命令行,而是实时打印日志文件中新增加的内容,这一特性,对于查看日志是非常有效的。如果想终止输出,按 Ctrl+C 即可。在Linux系统中,有三个主要的日志子系统:  连接时间日志--由多个程序执行,把纪录写入到/var/log/wtmp和/var/run/utmp,login等程序更新wtmp和utmp文件,使系统管理员能够跟踪谁在何时登录到系统。  进程统计--由系统内核执行。当一个进程终止时,为每个进程往进程统计文件(pacct或acct)中写一个纪录。进程统计的目的是为系统中的基本服务提供命令使用统计。  错误日志--由syslogd(8)执行。各种系统守护进程、用户程序和内核通过syslog(3)向文件/var/log/messages报告值得注意的事件。另外有许多UNIX程序创建日志。像HTTP和FTP这样提供网络服务的服务器也保持详细的日志。  常用的日志文件如下:  access-log         纪录HTTP/web的传输  acct/pacct         纪录用户命令  aculog           纪录MODEM的活动  btmp            纪录失败的纪录  lastlog  纪录最近几次成功登录的事件和最后一次不成功的登录  messages    从syslog中记录信息(有的链接到syslog文件)系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一   sudolog           纪录使用sudo发出的命令  sulog           纪录使用su命令的使用  syslog     从syslog中记录信息(通常链接到messages文件)  utmp            纪录当前登录的每个用户  wtmp        一个用户每次登录进入和退出时间的永久纪录  xferlog           纪录FTP会话/var/log/secure与安全相关的日志信息 /var/log/maillog 与邮件相关的日志信息 /var/log/cron 与定时任务相关的日志信息 /var/log/spooler 与UUCP和news设备相关的日志信息 /var/log/boot.log 守护进程启动和停止相关的日志消息
  utmp、wtmp和lastlog日志文件是多数重用UNIX日志子系统的关键--保持用户登录进入和退出的纪录。有关当前登录用户的信息记录在文件utmp中;登录进入和退出纪录在文件wtmp中;最后一次登录文件可以用lastlog命令察看。数据交换、关机和重起也记录在wtmp文件中。所有的纪录都包含时间戳。这些文件(lastlog通常不大)在具有大量用户的系统中增长十分迅速。例如wtmp文件可以无限增长,除非定期截取。许多系统以一天或者一周为单位把wtmp配置成循环使用。它通常由cron运行的脚本来修改。这些脚本重新命名并循环使用wtmp文件。通常,wtmp在第一天结束后命名为wtmp.1;第二天后wtmp.1变为wtmp.2等等,直到wtmp.7。  每次有一个用户登录时,login程序在文件lastlog中察看用户的UID。如果找到了,则把用户上次登录、退出时间和主机名写到标准输出中,然后login程序在lastlog中纪录新的登录时间。在新的lastlog纪录写入后,utmp文件打开并插入用户的utmp纪录。该纪录一直用到用户登录退出时删除。utmp文件被各种命令文件使用,包括who、w、users和finger。  下一步,login程序打开文件wtmp附加用户的utmp纪录。当用户登录退出时,具有更新时间戳的同一utmp纪录附加到文件中。wtmp文件被程序last和ac使用。  具体命令  wtmp和utmp文件都是二进制文件,他们不能被诸如tail命令剪贴或合并(使用cat命令)。用户需要使用who、w、users、last和ac来使用这两个文件包含的信息。  who:who命令查询utmp文件并报告当前登录的每个用户。Who的缺省输出包括用户名、终端类型、登录日期及远程主机。例如:who(回车)显示  chyang     pts/0 Aug     18 15:06  ynguo     pts/2 Aug     18 15:32  ynguo     pts/3 Aug     18 13:55  lewis     pts/4 Aug     18 13:35  ynguo     pts/7 Aug     18 14:12  ylou     pts/8 Aug     18 14:15  如果指明了wtmp文件名,则who命令查询所有以前的纪录。命令who /var/log/wtmp将报告自从wtmp文件创建或删改以来的每一次登录。  w:w命令查询utmp文件并显示当前系统中每个用户和它所运行的进程信息。例如:w(回车)显示:3:36pm up 1 day, 22:34, 6 users, load average: 0.23, 0.29, 0.27。  USER   TTY    FROM     LOGIN@ IDLE JCPU PCPU  WHAT  chyang pts/0 202.38.68.242  3:06pm 2:04 0.08s 0.04s -bash
ynguo pts/2 202.38.79.47   3:32pm 0.00s 0.14s 0.05   w  lewis pts/3 202.38.64.233  1:55pm 30:39 0.27s 0.22s -bash  lewis pts/4 202.38.64.233  1:35pm 6.00s 4.03s 0.01s sh /home/users/  ynguo pts/7 simba.nic.ustc.e 2:12pm 0.00s 0.47s 0.24s telnet mail  ylou  pts/8 202.38.64.235  2:15pm 1:09m 0.10s 0.04s  -bash  users:users用单独的一行打印出当前登录的用户,每个显示的用户名对应一个登录会话。如果一个用户有不止一个登录会话,那他的用户名将显示相同的次数。例如:users(回车)显示:chyang lewis lewis ylou ynguo ynguo  last:last命令往回搜索wtmp来显示自从文件第一次创建以来登录过的用户。例如:  chyang pts/9  202.38.68.242 Tue Aug 1 08:34 - 11:23 (02:49)  cfan  pts/6  202.38.64.224 Tue Aug 1 08:33 - 08:48 (00:14)  chyang pts/4  202.38.68.242 Tue Aug 1 08:32 - 12:13 (03:40)  lewis pts/3  202.38.64.233 Tue Aug 1 08:06 - 11:09 (03:03)  lewis pts/2  202.38.64.233 Tue Aug 1 07:56 - 11:09 (03:12)  如果指明了用户,那么last只报告该用户的近期活动,例如:last ynguo(回车)显示:  ynguo  pts/4 simba.nic.ustc.e Fri Aug 4 16:50 - 08:20 (15:30)  ynguo  pts/4 simba.nic.ustc.e Thu Aug 3 23:55 - 04:40 (04:44)  ynguo  pts/11 simba.nic.ustc.e Thu Aug 3 20:45 - 22:02 (01:16)  ynguo  pts/0 simba.nic.ustc.e Thu Aug 3 03:17 - 05:42 (02:25)  ynguo  pts/0 simba.nic.ustc.e Wed Aug 2 01:04 - 03:16 1+02:12)  ynguo  pts/0 simba.nic.ustc.e Wed Aug 2 00:43 - 00:54 (00:11)  ynguo  pts/9 simba.nic.ustc.e Thu Aug 1 20:30 - 21:26 (00:55)  ac:ac命令根据当前的/var/log/wtmp文件中的登录进入和退出来报告用户连结的时间(小时),如果不使用标志,则报告总的时间。例如:ac(回车)显示:total 5177.47  ac -d(回车)显示每天的总的连结时间  Aug 12 total 261.87  Aug 13 total 351.39  Aug 14 total 396.09  Aug 15 total 462.63  Aug 16 total 270.45  Aug 17 total 104.29  Today total 179.00  ac -p (回车)显示每个用户的总的连接时间  ynguo 193.23  yucao 3.35  rong 133.40  hdai 10.52  zjzhu 52.87  zqzhou 13.14  liangliu 24.34  total 5178.22  lastlog:lastlog文件在每次有用户登录时被查询。可以使用lastlog命令来检查某特定用户上次登录的时间,并格式化输出上次登录日志/var/log/lastlog的内容。它根据UID排序显示登录名、端口号(tty)和上次登录时间。如果一个用户从未登录过,lastlog显示&**Never logged**。注意需要以root运行该命令,例如:  rong      5   202.38.64.187         Fri Aug 18 15:57:01 +  dbb                           **Never logged in**  xinchen                         **Never logged in**  pb9511                         **Never logged in**  xchen     0   202.38.64.190         Sun Aug 13 10:01:22 +
你是说系统日志吗
/var/log/messages
为您推荐:
其他类似问题
linux的相关知识
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。路漫漫其修远兮,吾将上下而求索!
linux系统中rsync+inotify实现服务器之间文件实时同步
最近需要对服务器上的文件实施动态备份,我又不想每次都手动来进行备份,在网上找了挺多资料,发现使用rsync就可以实现,如果想要实现实时同步,还可以使用rsync+inotify组合,本文就是以组合方式来完成的。
先介绍一下rsync与inotify。
与传统的cp、tar备份方式相比,rsync具有安全性高、备份迅速、支持增量备份等优点,通过rsync可以解决对实时性要求不高的数据备份需求,例如定期的备份文件服务器数据到远端服务器,对本地磁盘定期做数据镜像等。
随着应用系统规模的不断扩大,对数据的安全性和可靠性也提出的更好的要求,rsync在高端业务系统中也逐渐暴露出了很多不足,首先,rsync同步数据时,需要扫描所有文件后进行比对,进行差量传输。如果文件数量达到了百万甚至千万量级,扫描所有文件将是非常耗时的。而且正在发生变化的往往是其中很少的一部分,这是非常低效的方式。其次,rsync不能实时的去监测、同步数据,虽然它可以通过linux守护进程的方式进行触发同步,但是两次触发动作一定会有时间差,这样就导致了服务端和客户端数据可能出现不一致,无法在应用故障时完全的恢复数据。基于以上原因,rsync+inotify组合出现了!
2、inotify
Inotify 是一种强大的、细粒度的、异步的文件系统事件监控机制,linux内核从2.6.13起,加入了Inotify支持,通过Inotify可以监控文件系统中添加、删除,修改、移动等各种细微事件,利用这个内核接口,第三方软件就可以监控文件系统下文件的各种变化情况,而inotify-tools就是这样的一个第三方软件。
在上面章节中,我们讲到,rsync可以实现触发式的文件同步,但是通过crontab守护进程方式进行触发,同步的数据和实际数据会有差异,而inotify可以监控文件系统的各种变化,当文件有任何变动时,就触发rsync同步,这样刚好解决了同步数据的实时性问题。
具体大家可以参照来进行学习。
接下面我们来开始进行rsync与inotify的安装、配置、测试。
下面是2个服务器的结构,分别为主机名、ip、同步的目录,并将2台服务器均是CentOS 6.5发行版本。
192.168.1.21
192.168.1.22
一、主服务器(Server)
其中主服务器需要安装rsync与inotify,主服务器作为server,向备份服务器client传输文件
1、安装rsync
该版本的已安装rsync,如果没有,可使用yum安装(也可以使用源码安装,这里就不多做介绍了):
#安装rsync和xinetd,并创建目录:
yum install rsync xinetd
#配置xinetd:
vi /etc/xinetd.d/rsync
#disable = yes修改为
disable = no
启动xinetd服务:
service xinetd start
2、建立密码认证文件
[root@Server ]# echo "rsync-pwd" &/etc/rsync.passwd
#其中rsync-pwd可以自己设置密码,rsync.passwd名字也可以自己设置
[root@Server]# chmod 600 /etc/rsync.passwd
#无论是为了安全,还是为了避免出现以下错误,密码文件都需要给600权限
3、安装inotify
[root@Server]# cd /usr/src/
[root@Server src]# wget http://cloud.github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz
[root@Server src]# tar zxvf inotify-tools-3.14.tar.gz
[root@Server src]# cd inotify-tools-3.14
[root@Server inotify-tools-3.14]# ./configure --prefix=/usr/local/inotify
[root@Server inotify-tools-3.14]# make
[root@Server inotify-tools-3.14]# make install
4、创建rsync复制脚本
此项功能主要是将server端的目录/tmp里的内容,如果修改了(无论是添加、修改、删除文件)能够通过inotify监控到,并通过rsync实时的同步给client的/tmp里,下面是通过shell脚本实现的。
#!/bin/bash
host=192.168.1.22
user=webuser
/usr/local/inotify/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e modify,delete,create,attrib $src \
| while read files
/usr/bin/rsync -vzrtopg --delete --progress --password-file=/usr/local/rsync/rsync.passwd $src $user@$host::$des
echo "${files} was rsynced" &&/tmp/rsync.log 2&&1
注意:建议各位吧rsync的日志放到其他的目录下(非备份目录)。
其中host是client的ip,src是server端要实时监控的目录,des是认证的模块名,需要与client一致,user是建立密码文件里的认证用户。
把这个脚本命名为rsync.sh,放到监控的目录里,比如我的就放到/tmp下面,并给予764权限
[root@Server tmp]# chmod 764 rsync.sh
然后运行这个脚本
[root@Server tmp]# sh /tmp/rsync.sh &
请记住,只有在备份服务器client端的rsync安装并启动rsync之后,在启动rsync.sh脚本,否则有时候会满屏出现:
rsync: failed to connect to 192.168.1.22: Connection refused (111)
rsync error: error in socket IO (code 10) at clientserver.c(107) [sender=2.6.8]
我们还可以把rsync.sh脚本加入到开机启动项里
[root@Server tmp]# echo "/tmp/rsync.sh" && /etc/rc.local
二、备份服务器(Client)
1、安装rsync(备份服务器只安装rsync)
#安装rsync和xinetd,并创建目录:
yum install rsync xinetd
#配置xinetd:
vi /etc/xinetd.d/rsync
#disable = yes修改为
disable = no
启动xinetd服务:
service xinetd start
2、建立用户与密码认证文件
[root@Client]# echo "webuser:rsync-pwd" & /etc/rsync.passwd
#请记住,在server端建立的密码文件,只有密码,没有用户名;而在备份服务端client里建立的密码文件,用户名与密码都有。
[root@Client]# chmod 600 /etc/rsync.passwd
#需要给密码文件600权限
3、建立rsync配置文件
vim /etc/rsyncd.conf
uid = root
gid = root
use chroot = no
max connections = 10
strict modes = yes
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
path = /tmp/
comment = web file
ignore errors
read only = no
write only = no
hosts allow = 192.168.10.220
hosts deny = *
list = false
uid = root
gid = root
auth users = webuser
secrets file = /usr/local/rsync/rsync.passwd
其中web是server服务端里的认证模块名称,需要与主服务器里的一致,以上的配置我的自己服务器里的配置,以供参考。
4、启动rsync
service xinetd start
chkconfig xinetd on
#设置开机自启动
现在rsync与inotify在server端安装完成,rsync在备份服务器client端也安装完成。接下来就可以来测试一下:
在server里创建个test-rsync文件,看看client是否能收到
[root@Server tmp]# touch test-rsync
再看client端是否有test-rsync文件,同时client端的tmp目录文件是否与server端的文件完全一致。如果一致,则表示已经设置成功。
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!Linux下rsync+inotify实现实时文件自动同步_服务器应用_Linux公社-Linux系统门户网站
你好,游客
Linux下rsync+inotify实现实时文件自动同步
来源:Linux社区&
作者:helonlihsmcn
注:本文接着上一章&Linux下配置Rsync实现文件同步&的环境下进程配置的&
背景:随着时代的发展,手工的同步文件的功能已经不适合为高效的现代化企业的服务了。
rsync的局限性:
1、对于大的文件(百万级、千万级的)同步耗时。2、不能实时的检测,rsync是根据Linux守护进程的方式进行触发同步的,这过程有很大的时间差。导致出现问题的时候可能无法完全的恢复数据。3、同步笨重,同步一次就是全部同步的了,不会自动只同步更新的那点。
所以rsync+inotify的实现可以更加高效,自动化的实现文件的实时同步,能够大大的提高工作的效率,有效的减少手工操作的失误。
inotify的简介
& Inotify 是一个 Linux特性,它监控文件系统操作,比如读取、写入和创建。Inotify 反应灵敏,用法非常简单,并且比 cron 任务的繁忙轮询高效得多。学习如何将 inotify 集成到您的应用程序中,并发现一组可用来进一步自动化系统治理的命令行工具。
是一个非常好的辅助性工具软件,后期本博客还会有更加多与inotify嵌合的功能发布!
一、需求环境
& Ceotos 6.5 内核2.6.32-431.el6.x86_64
虚拟机环境下
inotify服务器:192.168.0.244/24 & & & & &(即主机B)
备用服务器:192.168.0.144/24 & & & & & &(即主机A)&
rsync-3.1.2.tar.gz
inotify-tools-3.14.tar.gz
二、搭建rsync+inotify环境
& 注:在原来的rsync服务器上面即&inotify服务器:192.168.0.244/24 上面开始搭建
1、先安装好inotify包
& wget http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz &
tar zxf inotify-tools-3.14.tar.gzcd inotify-tools-3.14
&./configure --prefix=/usr/local/inotify-3.14
make && make install
2、创建监控脚本inotify.sh
#!/bin/bash
host01=192.168.0.144
#rsync服务器地址
src=/backup
#本地监控的目录
dst=backup
#rsync服务器的模块名称
user=nowview
#rsync服务器的虚拟用户
rsync_passfile=/etc/rsyncd.password
#本地调用rsync服务的密码文件
inotify_home=/usr/local/inotify-3.14
#inotify的安装目录
if [ ! -e "$src" ] \
|| [ ! -e "${rsync_passfile}" ] \
|| [ ! -e "${inotify_home}/bin/inotifywait" ] \
|| [ ! -e "/usr/bin/rsync" ];
echo "Check File and Folder"
${inotify_home}/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e close_write,delete,create,attrib $src \
| while read file
rsync -avzP --delete --timeout=100 --password-file=${rsync_passfile} $src $user@$host01::$dst &/dev/null 2&&1
cd $src && rsync -aruz -R --delete ./
--timeout=100 $user@$host01::$dst --password-file=${rsync_passfile} &/dev/null 2&&1
& 脚本创建完毕,丢给后台运行。(开机启动的话放到rc.local文档即可)
sh inotify.sh &
& 查看年一下进程
[root@主机B-244 /]# ps -ef |grep inotify
00:00:00 sh inotify.sh
00:00:00 /usr/local/inotify-3.14/bin/inotifywait -mrq --timefmt %d/%m/%y %H:%M --format %T %w%f -e close_write,delete,create,attrib /backup
00:00:00 sh inotify.sh
0 17:58 pts/0
00:00:00 grep --color inotify
& inotify的配置基本如上,更多的功能参数请参考上面的inotify文档网址。
& 现在,在inotify服务器上面可以看到
[root@主机B-244 backup]# pwd
[root@主机B-244 backup]# ls
asound.conf
pm-utils-hd-apm-restore.conf
cgconfig.conf
ld.so.conf
request-key.conf
cgrules.conf
libaudit.conf
resolv.conf
cgsnapshot_blacklist.conf
libuser.conf
rsyslog.conf
dracut.conf
logrotate.conf
sestatus.conf
mke2fs.conf
mtools.conf
sudo-ldap.conf
gssapi_mech.conf
nfsmount.conf
sysctl.conf
nsswitch.conf
xinetd.conf
idmapd.conf
& 我已经在根目录下创建了一个backup目录,立刻创建了如上内容
由于inotify脚本已经在后台运行了,正在实时的监控着这个目录的变化
下面到备用服务器(即原rsync服务器)上面去看看原来的rsync的模块bauckup的路径/home/backup下的情况
[root@主机A-144 backup]# pwd
/home/backup
[root@主机A-144 backup]# ll
[root@主机A-144 backup]#
& 目前还有同步过来,需要时间
& 等待......
[root@主机A-144 backup]# ls
asound.conf
pm-utils-hd-apm-restore.conf
cgconfig.conf
ld.so.conf
request-key.conf
cgrules.conf
libaudit.conf
resolv.conf
cgsnapshot_blacklist.conf
libuser.conf
rsyslog.conf
dracut.conf
logrotate.conf
sestatus.conf
mke2fs.conf
mtools.conf
sudo-ldap.conf
gssapi_mech.conf
nfsmount.conf
sysctl.conf
nsswitch.conf
xinetd.conf
idmapd.conf
[root@主机A-144 backup]# pwd
/home/backup
& 这些内容已经同步过来了。
& &关于这个inotify.sh它的这个监控,触发问题。
目前根据我的测试得出的结论是这样的,它的实时同步是建立在当这个被监控的目录/back &一旦生成有文件或者生成任何的东西的情况下,这个脚本就会立刻触发同步更新。当然会根据文件大小、网络以及其他的因素,它的同步会有所时间的差别。
总的来说是inotify服务器目录变化,那么rsync服务器的目录就跟着变化(同步),反过来就不可以了。不过,即便这样已经是满足了现代企业日常的需求了。
6.5 rsync+inotify实现数据实时同步备份
rsync+inotify实现数据的实时同步
rsync+inotify实现服务器之间文件实时同步详解&
Rsync结合Inotify 实时同步配置&
RSync实现数据备份&
inotify+rsync实现数据实时同步&
rsync+inotify实现数据的实时备份&
rsync+inotify实现数据自动同步&
使用rsync实现数据实时同步备份&
Rsync 的详细介绍:Rsync 的下载地址:
本文永久更新链接地址:
相关资讯 & & &
& (11/23/:11)
& (09/15/:32)
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款

我要回帖

更多关于 linux 获取服务器厂商 的文章

 

随机推荐