在使用该方法进行同步以前须要先在服务的开启相应服务同时要监听一个端口(可自定义),默认是监听873端口,开启服务以前编辑rsync配置文件“/etc/rsyncd.conf”(将服务添加进去)而后直接使用命令:“rsync --daemon(服务名称)”进行同步。或者将配置文件写到一个自定义文件中,使用命令“rsync --configfile”进行同步。
配置完成后客户端能够经过指定端口与服务端进行通讯。node
[root@3 grep]# vim /etc/rsyncd.conf port=873 #指定启动rsync服务的端口,若是不指定,默认为873端口 log file=/var/log/rsync.log #指定日志文件 pid file=/var/run/rsyncd.pid #指定pid文件,这个文件的做用涉及服务的启动、中止等进程操做。 address=192.168.8.125 #指定启动rsyncd服务的IP。假如你的机器有多个IP,就能够指定由其中一个启动rsyncd服务,若是不指定该参数,默认是在所有IP上启动。 [test] #指定模块名,里面内容自定义 path=/tmp/rsync #指定数据存放的路径 use chroot=true #use chroot=true/false:安全参数,表示在传输文件前首先chroot到path参数所指定的目录下。这样作的缘由是实现额外的安全防御,但缺点是须要以roots权限,而且不能备份指向外部的符号链接所指向的目录文件。默认状况下chroot值为true,若是你的数据当中有软链接文件,建议设置成false。 max connections=4 #指定最大的链接数,默认是0,即没有限制。 read only=no #read only ture|false:若是为true,则不能上传到该模块指定的路径下。 list=true #表示当用户查询该服务器上的可用模块时,该模块是否被列出,设定为true则列出(此时功能相似于tab),false则隐藏。 uid=root gid=root #指定传输文件时以哪一个uid和gid的身份进行。 #auth users=test #指定传输时要使用的用户名 #secrets file=/etc/rsyncd.passwd #指定密码文件,该参数连同上面的参数若是不指定,则不使用密码验证。 #注意:该密码文件的权限必定要是600。格式:“用户名:密码” hosts allow=192.168.8.129 #表示被容许链接该模块的主机,能够是IP或者网段,若是是多个,中间用空格隔开。
说明: 当设置了auth users和secrets file后,客户端连服务端也须要用用户名密码了,若想在命令行中带上密码,能够设定一个密码文件“/etc/pass”,而后执行命令:“ rsync -avL test@192.168.133.130::test/test1/ /tmp/test8/ --password-file=/etc/pass”,其中/etc/pass内容就是一个密码,权限要改成600(文件内容格式为:“用户名:密码”)。vim
开启服务: [root@3 grep]# rsync --daemon 检测服务状态: [root@3 grep]# ps aux |grep rsync root 9155 0.0 0.0 114644 552 ? Ss 23:22 0:00 rsync --daemon root 9159 0.0 0.0 112664 976 pts/0 S+ 23:23 0:00 grep --color=auto rsync [root@3 grep]# netstat -lntp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1300/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2262/master tcp 0 0 192.168.8.125:873 0.0.0.0:* LISTEN 9155/rsync tcp6 0 0 :::22 :::* LISTEN 1300/sshd tcp6 0 0 ::1:25 :::* LISTEN 2262/master 添加path的相应目录: [root@3 grep]# mkdir /tmp/rsync 更改目录权限: [root@3 grep]# chmod 777 /tmp/rsync
注: 在配置文件中设定path时注意所给予的权限,安全起见不要直接使用root目录!!!
配置文件中“[]”为模块,里面内容为模块名称,该模块表明的路径即为path指定的路径。windows
在客户端进行同步:同步到服务端 [root@3 ~]# rsync -avP /tmp/11.txt 192.168.8.125::test/3 sending incremental file list 11.txt 1148 100% 0.00kB/s 0:00:00 (xfer#1, to-check=0/1) sent 1218 bytes received 27 bytes 830.00 bytes/sec total size is 1148 speedup is 0.92 将服务端数据同步到本机(客户端): [root@3 ~]# rsync -avP 192.168.8.125::test/adai002 /tmp/123.txt receiving incremental file list 3 1148 100% 1.09MB/s 0:00:00 (xfer#1, to-check=0/1) sent 45 bytes received 1250 bytes 863.33 bytes/sec total size is 1148 speedup is 0.89 [root@3 ~]# ls /tmp/ 11.txt 123.txt ####################################### 在服务端查看同步结果: [root@1 ~]# ls /tmp/rsync/ 3 完成!
telnet命令用于登陆远程主机,对远程主机进行管理。telnet由于采用明文传送报文,安全性很差,不少Linux服务器都不开放telnet服务,而改用更安全的ssh方式了。安全
语法: telnet [options] [参数]服务器
应用: 检测端口是否可通讯session
[root@3 ~]# telnet 192.168.8.125 873 Trying 192.168.8.125... Connected to 192.168.8.125. Escape character is '^]'. @RSYNCD: 30.0 ^] #退出该命令时使用Ctrl+],而后输入quit便可! @ERROR: protocol startup error Connection closed by foreign host.
编辑rsync配置文件,将端口改成port=8730ssh
安装killall工具:“yum install -y psmisc”。socket
杀死全部rsync进程: [root@3 ~]# killall rsync 启动: [root@3 ~]# rsync --daemon 检测: [root@adai003 ~]# !ps ps aux |grep rsync root 3161 0.0 0.0 114644 548 ? Ss 09:09 0:00 rsync --daemon [root@3 ~]# !netstat netstat -lntp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 192.168.8.125:8730 0.0.0.0:* LISTEN 3161/rsync
[root@1 ~]# rsync -avP 192.168.8.125::test/adai002 /tmp/123.txt rsync: failed to connect to 192.168.8.125 (192.168.8.125): Connection refused (111) rsync error: error in socket IO (code 10) at clientserver.c(122) [Receiver=3.0.9]
说明: 因未开放873端口,因此此时同步数据会报错!那么如何进行同步呢?方法以下:tcp
[root@1 ~]# rsync -avP --port 8730 192.168.8.125::test/1 /tmp/123.txt receiving incremental file list sent 26 bytes received 59 bytes 170.00 bytes/sec total size is 1148 speedup is 13.51
说明: 使用--port选项指定端口号。工具
查看系统硬件相关的日志。dmesg命令被用于检查和控制内核的环形缓冲区。kernel会将开机信息存储在ring buffer中。您如果开机时来不及查看信息,可利用dmesg来查看。开机信息保存在:/var/log/dmesg文件里。
在该日志中能够查看系统有哪些硬件故障。
语法: dmesg [option]
Options:
-c:清除日志(系统重启会从新生成)
-n:指定记录信息的层级
last命令用于显示用户最近登陆信息。单独执行last命令,它会读取/var/log/wtmp的文件,并把该给文件的内容记录的登入系统的用户名单所有显示出来。
lastb命令用于显示用户错误的登陆列表,此指令能够发现系统的登陆异常。单独执行lastb命令,它会读取位于/var/log目录下,名称为btmp的文件,并把该文件内容记录的登入失败的用户名单,所有显示出来。(/var/log/btmp)
>logrotate命令用于对系统日志进行轮转、压缩和删除,也能够将日志发送到指定邮箱。使用logrotate指令,可以让你轻松管理系统所产生的记录文件。每一个记录文件均可被设置成每日,每周或每个月处理,也能在文件太大时当即处理。您必须自行编辑,指定配置文件,预设的配置文件存放在/etc/logrotate.conf文件中。
安装logrotate工具: yum install logrotate crontabs
Logrotate可配置参数,可以使用man命令来查询:
compress 经过gzip压缩转储之后的日志 nocompress 不压缩 copytruncate 用于还在打开中的日志文件,把当前日志备份并截断 nocopytruncate 备份日志文件可是不截断 create mode owner group 转储文件,使用指定的文件模式建立新的日志文件 nocreate 不创建新的日志文件 delaycompress 和 compress 一块儿使用时,转储的日志文件到下一次转储时才压缩 nodelaycompress 覆盖 delaycompress 选项,转储同时压缩。 errors address 专储时的错误信息发送到指定的Email 地址 ifempty 即便是空文件也转储,这个是 logrotate 的缺省选项。 notifempty 若是是空文件的话,不转储 mail address 把转储的日志文件发送到指定的E-mail 地址 nomail 转储时不发送日志文件 olddir directory 转储后的日志文件放入指定的目录,必须和当前日志文件在同一个文件系统 noolddir 转储后的日志文件和当前日志文件放在同一个目录下 prerotate/endscript 在转储之前须要执行的命令能够放入这个对,这两个关键字必须单独成行 postrotate/endscript 在转储之后须要执行的命令能够放入这个对,这两个关键字必须单独成行 daily 指定转储周期为天天 weekly 指定转储周期为每周 monthly 指定转储周期为每个月 rotate count 指定日志文件删除以前转储的次数,0 指没有备份,5 指保留5 个备份 tabootext [+] list 让logrotate 不转储指定扩展名的文件,缺省的扩展名是:.rpm-orig, .rpmsave, v, 和 ~ size size 当日志文件到达指定的大小时才转储,bytes(缺省)及KB(sizek)或MB(sizem)
>Screen是一款由GNU计划开发的用于命令行终端切换的自由软件。用户能够经过该软件同时链接多个本地或远程的命令行会话,并在其间自由切换。GNU Screen能够看做是窗口管理器的命令行界面版本。它提供了统一的管理多个会话的界面和相应的功能。
安装screen工具:yum install -y screen
# nohup command >[日志文件] 2>[日志文件] &
screen语法:
screen [option] [参数]
在每一个screen session 下,全部命令都以 ctrl+a(C-a) 开始:
C-a d -> detach,暂时离开当前session,将目前的 screen session (可能含有多个 windows) 丢到后台执行,并会回到还没进 screen 时的状态,此时在 screen session 里,每一个 window 内运行的 process (不管是前台/后台)都在继续执行,即便 logout 也不影响。
[root@3 ~]# screen -ls There is a screen on: 3628.pts-0.adai003 (Detached) 1 Socket in /var/run/screen/S-root.
[root@3 ~]# screen -r 3628(screen的id)
[root@adai003 ~]# screen -r 3628
[root@3 ~]# screen -S "test_screen"
说明: 这样作的目的是方便区分每一个screen任务。