CentOS 7 下对rsync学习并实践记录

前言

PS:本人纯属服务端小白,白的不能再白!有些地方可能描述的不是很准确,还请方家多多指教!

学习参考地址:http://man.linuxde.net/rsync
故障排除参考地址:https://www.cnblogs.com/wang-xd/p/6551402.html

概念

rsync的作用

1:本地数据同步(类似cp复制命令)
2:远程数据同步(类似scp)

PS:与cp和scp 不同点是rsync是进行数据差异化的同步,也就是所谓的增量拷贝,就是如果数据已存在,不会覆盖已存在的数据,只有数据存在差异时候才进行同步。

安装

[root@bogon ~]# yum install -y rsync

安装完成后一个本地同步测试示例

# 把/etc/passwd 下的内容同步到/tmp/xiaozhong.yy 文件中
[root@bogon ~]# rsync -av /etc/passwd /tmp/xiaozhong.yy 
sending incremental file list
passwd

sent 1082 bytes  received 31 bytes  2226.00 bytes/sec
total size is 1008  speedup is 0.91
[root@bogon ~]# 

查看结果

[root@bogon ~]# cd /tmp/
[root@bogon tmp]# ll
total 8
-rwx------. 1 root root  836 Jan  7 23:59 ks-script-G_oEI7
drwx------. 3 root root   17 Jan  8 00:03 systemd-private-9882fb72393b441bb98a780056f573ce-vmtoolsd.service-VMJHMD
drwx------. 3 root root   17 Mar  5 09:10 systemd-private-ecd950f7e13240f9980360cc3aa9c10f-vmtoolsd.service-RHgTMS
drwx------. 3 root root   17 Jan  8 07:20 systemd-private-f1f1115c74d6454eb93f0eec2da78736-vmtoolsd.service-LFuDRy
-rw-r--r--. 1 root root 1008 Jan  7 23:59 xiaozhong.yy
-rw-------. 1 root root    0 Jan  7 23:49 yum.log
[root@bogon tmp]# 

[root@bogon tmp]# cat xiaozhong.yy  #查看内容
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:998:996:User for polkitd:/:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
chrony:x:997:995::/var/lib/chrony:/sbin/nologin
[root@bogon tmp]#

同步目录时候需要注意细节问题:加'/'和不加'/'的区别

注意事项:rm -rf 很危险!!!!!
注意事项:rm -rf 很危险!!!!!
注意事项:rm -rf 很危险!!!!!

[root@bogon rsync]# rsync -a test1 test2
[root@bogon rsync]# ls test2/
test1
[root@bogon rsync]# rm -f test2
rm: cannot remove ‘test2’: Is a directory
[root@bogon rsync]# rm -rf test2
[root@bogon rsync]# rsync -a test1/ test2/
[root@bogon rsync]# ls test2/
1  123.txt  2  3
[root@bogon rsync]# 

解释:
加'/' 表示只是把目录下的内容进行备份,
不加是连目录名一同进行备份处理!

同步的时候关于 --delete

说明:--delete 删除那些DST中SRC没有的文件。保持同步数据一致性

远程同步小示例

准备两台虚拟服务器:
192.168.74.128
192.168.74.129

示例1:通过ssh的方式备份数据(示例来自跟阿铭学linux)

命令:rsync test1/ 192.168.74.129:/tmp/test2/

[root@bogon rsync]# rsync test1/ 192.168.74.129:/tmp/test2/
The authenticity of host '192.168.74.129 (192.168.74.129)' can't be established.
ECDSA key fingerprint is b1:95:de:4a:27:95:46:fb:ff:b6:aa:3b:7f:6f:cc:89.
Are you sure you want to continue connecting (yes/no)? yes # 第一次需要输入yes
Warning: Permanently added '192.168.74.129' (ECDSA) to the list of known hosts.
root@192.168.74.129's password:  #输入192.168.74.129 root密码
skipping directory .
[root@bogon rsync]# 

查看192.168.74.129/tmp/test2/目录下的结果:
[图片上传失败...(image-67ec29-1520261550264)]

Last login: Wed Feb 28 21:24:48 2018 from 192.168.74.1
[root@bogon ~]# ls /tmp/test2/
[root@bogon ~]# cd /tmp/test2/
[root@bogon test2]# ll
total 0
[root@bogon test2]# 

没有数据!有点奇怪!

原来是因为命令错误!~

问题2:执行同步的时候提示了

[root@localhost ceshi]# rsync jiao/ 192.168.219.129:/data/test2/
root@192.168.219.129's password: 
bash: rsync: command not found
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: remote command not found (code 127) at io.c(226) [sender=3.1.2]

似乎也需要再129上安装rsync ,之后才正常的!!!

命令:rsync -avL test1/ 192.168.74.129:/tmp/test2/

[root@bogon rsync]# rsync -avL test1/ 192.168.74.129:/tmp/test2/
root@192.168.74.129's password: 
sending incremental file list
./
.123.txt
1
123.txt
2
3

sent 275 bytes  received 110 bytes  23.33 bytes/sec
total size is 0  speedup is 0.00

重新再查看129的目录下的数据,已经同步成功:

Last login: Wed Feb 28 21:24:48 2018 from 192.168.74.1
[root@bogon ~]# ls /tmp/test2/
[root@bogon ~]# cd /tmp/test2/
[root@bogon test2]# ll
total 0
[root@bogon test2]# ll
total 0
-rw-r--r--. 1 root root 0 Mar  5 09:31 1
-rw-r--r--. 1 root root 0 Mar  5 09:31 123.txt
-rw-r--r--. 1 root root 0 Mar  5 09:31 2
-rw-r--r--. 1 root root 0 Mar  5 09:31 3
[root@bogon test2]# 
示例2:通过ssh的方式免输入密码方式备份数据(示例来自跟阿铭学linux)

记得之前学习Centos7下-使用密钥认证方式登入服务器之前已经生成了对应的密钥对。
地址:https://www.jianshu.com/p/fba14eadf6be

我们把之前128生成的公钥也放到129下面的authorized_keys
在128的服务上使用的命令方式是:

ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.74.129
或
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.74.129

执行过程:

[root@bogon rsync]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.74.129
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.74.129's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'root@192.168.74.129'"
and check to make sure that only the key(s) you wanted were added.

[root@bogon rsync]# 

上面执行完成后尝试,在128服务器使用ssh连接129看看(登入成功查看对应的IP 说明 免密登入成功):

[root@bogon rsync]# ssh 192.168.74.129
Last login: Mon Mar  5 09:30:13 2018 from 192.168.74.1
[root@bogon ~]# hostname
bogon
[root@bogon ~]# ipconfig
-bash: ipconfig: command not found
[root@bogon ~]# ifcongif
-bash: ifcongif: command not found
[root@bogon ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.74.129  netmask 255.255.255.0  broadcast 192.168.74.255
        ether 00:0c:29:6a:c4:38  txqueuelen 1000  (Ethernet)
        RX packets 1396  bytes 112339 (109.7 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 527  bytes 69682 (68.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        loop  txqueuelen 1  (Local Loopback)
        RX packets 4  bytes 340 (340.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 4  bytes 340 (340.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[root@bogon ~]# 

再重新尝试示例1的命令看看是否还需要输入密码:

[root@bogon ~]# rsync -avL test1/ 192.168.74.129:/tmp/test2/
sending incremental file list
rsync: change_dir "/root//test1" failed: No such file or directory (2)

sent 12 bytes  received 12 bytes  2.29 bytes/sec
total size is 0  speedup is 0.00
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1052) [sender=3.0.9]

rsync -avL test1/ 192.168.74.129:/tmp/test2/

出现了错误是因为:当前不是在对应的test1目录下

[root@bogon ~]# cd rsync/
[root@bogon rsync]# ll
total 0
drwxr-xr-x. 2 root root 64 Mar  5 09:32 test1
drwxr-xr-x. 2 root root 64 Mar  5 09:32 test2
[root@bogon rsync]# rsync -avL test1/ 192.168.74.129:/tmp/test2/
sending incremental file list

sent 77 bytes  received 12 bytes  7.74 bytes/sec
total size is 0  spee
示例3:通过后台服务的方式

(来自跟阿铭学linux)
说明:这种方式是在远程主机上搭建一个rsync的服务器,在服务器上配置好rsync的配置文件信息,然后本机作为rsync的一个客户端连接远程的rsync的服务器。

配置128-rsync服务器步骤:
(1):在128主机上建立并配置rsync的配置文件【/etc/rsyncd.conf】。

[root@bogon rsync]# nano /etc/rsyncd.conf

[root@bogon rsync]# nano /etc/rsyncd.conf 

# /etc/rsyncd: configuration file for rsync daemon mode

# See rsyncd.conf man page for more options.

# configuration example:

# uid = nobody
# gid = nobody
# use chroot = yes
# max connections = 4
# pid file = /var/run/rsyncd.pid
# exclude = lost+found/
# transfer logging = yes
# timeout = 900
# ignore nonreadable = yes
  GNU nano 2.3.1                                        File: /etc/rsyncd.conf                                                                             Modified  

# dont compress   = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2

# [ftp]
#        path = /home/ftp
#        comment = ftp export area
port = 873
log file = /var/log/rsync.log
pid file = /var/run/rsyncd.pid  
address = 192.168.74.128

[test]
path = /root/rsync
use chroot = yes
max connections = 4
read only = no
list = true
uid = root
gid = root
auth users = test
secrets file = /ect/rsyncd.password
hosts allow = 192.168.74.129

文件内容:

#全局配置
port = 873 
log file = /var/log/rsync.log
pid file = /var/run/rsyncd.pid  
address = 192.168.74.128
#模块配置(可以配置多模块,模块名可以自定义)
[test]
path = /root/rsync
use chroot = yes
max connections = 4
read only = no
list = true
uid = root
gid = root
auth users = test
secrets file = /ect/rsyncd.password
hosts allow = 192.168.74.129

PS:如果想查阅更多的关于配置文件的参数信息可以使用:

man rsyncd.conf

参数信息说明:
port --- 指定在哪个端口启动rsyncd服务,默认873端口

log file --- 指定日志文件

pid file ---指定pid文件,该文件主要的涉及到服务的启动和停止等进程的管理操作

address --- 指定启动rsyncd服务器的IP,如你的机器有多个IP,就可以指定其中一个为启动IP,如果不指定该参数,则默认是在全部的IP上启动。

[] ---:指定模块的名称

path --- 指定数据存放的路径

use chroot true|false : 表示在传输文件前,首先chroot 到path参数所指定的目录下。目的是:实现额外的完全防护,但缺点是需要root权限,并且不能备份指向外部的符号连接所指向的目录文件(软连接文件)。默认情况是true,但是如果需要同步的目录下包含有软连接文件的话,那么就设置为false!

max connections --- 指定最大的连接数,默认是0 ,表示没限制。

read only true|false --- 如果是true, 则不能上传到该模块指定的路径下。

list --- 表示当用户查询该服务器上的可用模块是,该模块是否要列出,设置为true,则显示出来!反之不显示!

uid/gid --- 指定传输文件是以那个用户/组的身份进行传输。

auth users --- 指定传输时要使用的用户名。

secrets file --- 指定密码文件,该参数联通上面的uth users 参数如果不指定,则不使用密码验证。另外注意:该密码文件的权限一定要设置为 600 。

hosts allow --- 表示可以连接该模块的主机,可以是ip或网段, 如果是多个,中间使用空格分开。

PS:配置文件修改完成后,不需要重启rsyncd服务!修改完后会直接的生效。

(2):编辑secrets file并保持且赋予600权限。

[root@bogon rsync]# nano /etc/rsyncd.password

  GNU nano 2.3.1                                       File: /etc/rsyncd.password                                                                                    

test:test123


[root@bogon rsync]# chmod 600 /etc/rsyncd.password 
[root@bogon rsync]# 

(3):开始后台启动rsyncd服务

[root@bogon rsync]# rsync --daemon --config=/etc/rsyncd.conf 

(4) 查看启动日志,并查看启动端口:

[root@bogon rsync]# cat /var/log/rsync.log 
2018/03/05 10:49:56 [2570] rsyncd version 3.0.9 starting, listening on port 873
[root@bogon rsync]# 

PS: 如果需要开启启动rsyncd服务,需把

rsync --daemon --config=/etc/rsyncd.conf 

写入到:

/etc/rc.d/rc.local

(5)先关闭两台服务器的防火墙,后期线上在进行设置相关端口规则
分别执行:

[root@bogon rsync]# systemctl stop firewalld
[root@bogon rsync]# systemctl disable firewalld
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.
[root@bogon rsync]#

(6)在客户机129上执行相关的同步命令

[root@bogon test2]# rsync -avL test@192.168.74.128::test/test1/ /tmp/test5/

错误现象:

[root@bogon test2]# rsync -avL test@192.168.74.128::test/test1/ /tmp/test5/
Password: 
@ERROR: auth failed on module test
rsync error: error starting client-server protocol (code 5) at main.c(1516) [Receiver=3.0.9]
[root@bogon test2]# 

输入的密码是:test123 结果认证错!

在128上修改模块的密码为123456 并且重启一下服务器:

[root@bogon rsync]# rsync --daemon --config=/etc/rsyncd.conf 
[root@bogon rsync]# failed to create pid file /var/run/rsyncd.pid: File exists

[root@bogon rsync]# 
[root@bogon rsync]# ps -ef|grep rsyncd
root       2694   2443  0 11:06 pts/1    00:00:00 grep --color=auto rsyncd
[root@bogon rsync]# rm -rf /var/run/rsyncd.pid 
[root@bogon rsync]# rsync --daemon --config=/etc/rsyncd.conf 
[root@bogon rsync]# 

发现问题所在是因为配置文件信息密码路径有误。

/ect/rsyncd.password
改为
/etc/rsyncd.password

最终修正一下相关配置文件信息为:

port = 873
log file = /var/log/rsync.log
pid file = /var/run/rsyncd.pid
address = 192.168.74.128

[test]
path = /root/rsync
use chroot = false
max connections = 4
read only = no
list = true
uid = root
gid = root
auth users = test
secrets file = /etc/rsyncd.password
hosts allow = 192.168.74.129

PS:如果use chroot = true,则同步的时候会出现软件文件权限的问题,因为在128服务器下有一个软连接的文件。
需要修改为 :use chroot = false

(7)在129服务器上执行同步命令的时候,还是需要输入密码的方式,为了实现免输入密码的方式,可以再129的地方建立一个自动输入密码的文件

主要的方式是:
(7.1)在客户端(129)指定密码文件,如把密码文件放置到 /etc/pass下

[root@localhost test5]# nano /etc/pass

  GNU nano 2.3.1                                          File: /etc/pass                                                                                            

xiaozhong

PS:注意此密码和128中配置的用户名对应的密码是一致的哟!

[root@localhost test5]# cat /etc/pass
xiaozhong
[root@localhost test5]# 

(7.2)修改文件权限

[root@localhost test5]# chmod 600 /etc/pass
[root@localhost test5]# 

(7.3)修改同步的命令,指定密码

rsync -avL test@192.168.74.128::test/test1/ /tmp/test8/ --password-file=/etc/pass

[root@localhost test5]# rsync -avL test@192.168.74.128::test/test1/ /tmp/test8/ --password-file=/etc/pass
receiving incremental file list
created directory /tmp/test8
./
.123.txt
1
123.txt
2
3

sent 152 bytes  received 343 bytes  990.00 bytes/sec
total size is 0  speedup is 0.00
[root@localhost test5]# 
》在129上把本机一些目录同步到128服务端的命令测试:
[root@localhost test5]# rsync -avzP  --delete --password-file='/etc/pass' --exclude-from=/etc/rsync_exclude.list  /etc/pass test@192.168.74.128::test  
sending incremental file list
pass
          10 100%    0.00kB/s    0:00:00 (xfer#1, to-check=0/1)

sent 111 bytes  received 27 bytes  276.00 bytes/sec
total size is 10  speedup is 0.07
[root@localhost test5]# 

查看一下128同步的结果

[root@localhost rsync]# ll
total 4
-rw-------. 1 root root 10 Mar  5 21:54 pass
drwxr-xr-x. 2 root root 64 Mar  5 09:32 test1
drwxr-xr-x. 2 root root 64 Mar  5 09:32 test2
[root@localhost rsync]# cat pass 
xiaozhong
[root@localhost rsync]# 

[root@localhost www]# rsync -avzP --delete --password-file='/etc/pass' --exclude-from=/etc/rsync_exclude.list /data/ test@192.168.74.128::test

[root@localhost rsync]# ll
total 0
-rwxr-xr-x.  1 root root   0 Feb 28 21:26 343.txt
drwxr-xr-x. 10 root root 175 Jan 15 21:36 app
drwxr-xr-x.  6 root root 187 Jan 11 04:26 bak
drwxr-xr-x.  2 root root  24 Jan 10 01:55 logs
drwxr-xr-x.  2 root root   6 Jan 10 01:45 redis
drwxr-xr-x.  3 root root  41 Jan 10 02:05 www
[root@localhost rsync]# 

[root@localhost www]# rsync -avzP --delete --password-file='/etc/pass' --exclude-from=/etc/rsync_exclude.list /data/www/ test@192.168.74.128::test

[root@localhost rsync]# ll
total 4
drwxr-xr-x. 2 root root   6 Jan 10 21:24 __pycache__
-rw-r--r--. 1 root root 874 Jan 10 21:23 tasks.py
[root@localhost rsync]# 

遇到的问题处理:

1:启动rsyncd服务的时候失败:
查看日志信息显示:


2018/03/05 21:05:48 [2192] rsyncd version 3.0.9 starting, listening on port 873
2018/03/05 21:05:48 [2192] bind() failed: Cannot assign requested address (address-family 2)
2018/03/05 21:05:48 [2192] unable to bind any inbound sockets on port 873
2018/03/05 21:05:48 [2192] rsync error: error in socket IO (code 10) at socket.c(555) [Receiver=3.0.9]

可能原因:因为端口没开,或是因为防火墙没关闭@@@,可能是虚拟机重启后防火墙设置失效了!再重新进行关闭进行测试!

[root@bogon rsync]# systemctl stop firewalld
[root@bogon rsync]# systemctl disable firewalld

可是关闭了还是不行!!后来发现是登入错了服务器!!!!不是在128里启动的服务器!

2:取消使用用户认证后,


image.png

在129上进行同步出现了
错误信息:


image.png

原因:
原因是有文件没有写的权限,导致备份数据库权限不够,两种解决办法:

1)、将服务端rsyncd.conf配置文件的uid和gid分别修改成root,重载下,/etc/rc.d/init.d/xinetd reload,再次执行同步,同步成功

2)、将需要同步的文件夹及下属文件赋予777权限(chmod -R 777 xxx),再次执行同步,同步成功

注意:如果使用第一种办法,那么在执行完同步后,为了安全,记得将uid和gid修改回来,或修改成nobody

3),问题的原始因为配置文件里的
use chroot = true 默认是开启的true

use chroot = false 即可

3:恢复使用用户认证继续测试..@ERROR: auth failed on module test

错误原因:
128配置文件的密码目录写错

secrets file = /ect/rsyncd.password
应该是:
secrets file = /etc/rsyncd.password

#全局配置
port = 873 
log file = /var/log/rsync.log
pid file = /var/run/rsyncd.pid  
address = 192.168.74.128
#模块配置(可以配置多模块,模块名可以自定义)
[test]
path = /root/rsync
use chroot = yes
max connections = 4
read only = no
list = true
uid = root
gid = root
auth users = test
secrets file = /ect/rsyncd.password
hosts allow = 192.168.74.129

此类异常问题解决总结:

  1. 密码真的输入错误,用户名真的错误

  2. secrets file = /etc/rsync.password指定的密码文件和实际密码文件名称不一致

  3. /etc/rsync.password文件权限不是600

  4. rsync_backup:123456密码配置文件后面注意不要有空格

  5. rsync客户端密码文件中只输入密码信息即可,不要输入虚拟认证用户名称

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,176评论 5 469
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,190评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,232评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,953评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,879评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,177评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,626评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,295评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,436评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,365评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,414评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,096评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,685评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,771评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,987评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,438评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,032评论 2 341

推荐阅读更多精彩内容