2020-04-01 Liunx测试

启动时间相关

1. systemd-analyze命令

# 开机启动时间
root@TangramBook:~# systemd-analyze 
Startup finished in 5.843s (firmware) + 52ms (loader) + 5.113s (kernel) + 8.231s (userspace) = 19.241s
graphical.target reached after 8.224s in userspace
# 服务启动时间
root@TangramBook:~# systemd-analyze blame 
  3.868s cic.service
          3.433s NetworkManager-wait-online.service
          ...... 省略部分 ......
           498ms plymouth-quit-wait.service
           498ms plymouth-quit.service
           296ms docker.service
             2ms sys-kernel-config.mount
             2ms setvtrgb.service
           822us docker.socket
# 系统启动和运行(正常运行时间)以来的持续时间
root@TangramBook:~# uptime -p
up 22 hours, 23 minutes
# 系统启动和运行(正常运行时间)以来的持续时间
root@TangramBook:~# uptime -s

2. uptime命令

#  1. uptime命令
root@TangramBook:~# uptime 
 15:03:48 up  2:35,  2 users,  load average: 0.38, 0.16, 0.20
# 2.查看/proc/uptime文件计算系统启动时间
root@TangramBook:~# cat /proc/uptime
9339.47 73723.60
#  ----运用系统工具date即可算出系统启动时间
root@TangramBook:~# date -d "$(awk -F. '{print $1}' /proc/uptime) second ago" +"%Y-%m-%d %H:%M:%S"
2020-04-01 12:28:20
#  3.查看/proc/uptime文件计算系统运行时间
root@TangramBook:~# cat /proc/uptime| awk -F. '{run_days=$1 / 86400;run_hour=($1 % 86400)/3600;run_minute=($1 % 3600)/60;run_second=$1 % 60;printf("系统已运行:%d天%d时%d分%d秒",run_days,run_hour,run_minute,run_second)}'
系统已运行:0天2时36分23秒

3. who 命令

who -b 查看最后一次系统启动的时间。
who -r 查看当前系统运行时间

#  上次启动时间
root@TangramBook:~# who -b
         系统引导 2020-04-01 20:28
#  当前运行时间
root@TangramBook:~# who -r
         运行级别 5 2020-04-01 20:29
#  历史启动时间
root@TangramBook:~# last reboot
wtmp begins Wed Apr  1 15:03:35 2020
#  最后一次启动时间
root@TangramBook:~# last reboot | head -1

4. 通过脚本实现(sysinfo)

sysinfo结构
  sysinfo结构保持了系统启动后的信息,主要包括启动到现在的时间,可用内存空间、共享内存空间、进程的数目等。man sysinfo得到结果如下所示

struct sysinfo {
                 long uptime;             /* Seconds since boot */
                 unsigned long loads[3];  /* 1, 5, and 15 minute load averages */
                 unsigned long totalram;  /* Total usable main memory size */
                 unsigned long freeram;   /* Available memory size */
                 unsigned long sharedram; /* Amount of shared memory */
                 unsigned long bufferram; /* Memory used by buffers */
                 unsigned long totalswap; /* Total swap space size */
                 unsigned long freeswap;  /* swap space still available */
                unsigned short procs;    /* Number of current processes */
                char _f[22];             /* Pads structure to 64 bytes */
            };

获取系统启动时间
  通过sysinfo获取系统启动到现在的秒数,用当前时间减去这个秒数即系统的启动时间。程序如下所示:

  #include <stdio.h>
  #include <sys/sysinfo.h>
  #include <time.h>
  #include <errno.h>
  
  static int print_system_boot_time()
  {
     struct sysinfo info;
     time_t cur_time = 0;
     time_t boot_time = 0;
     struct tm *ptm = NULL;
     if (sysinfo(&info)) {
     fprintf(stderr, "Failed to get sysinfo, errno:%u, reason:%s\n",
         errno, strerror(errno));
     return -1;
     }
     time(&cur_time);
     if (cur_time > info.uptime) {
     boot_time = cur_time - info.uptime;
     }
     else {
     boot_time = info.uptime - cur_time;
     }
     ptm = gmtime(&boot_time);
     printf("System boot time: %d-%-d-%d %d:%d:%d\n", ptm->tm_year + 1900,
         ptm->tm_mon + 1, ptm->tm_mday, ptm->tm_hour, ptm->tm_min, ptm->tm_sec);
    return 0; 
 }
 
 int main()
 {
     if (print_system_boot_time() != 0) {
     return -1;
     }
     return 0;
 }
#  1.uptime命令
root@TangramBook:~# ./time 
System boot time: 2020-04-01 20:28:38

电池耗电检测

  1. upower(系统自带) >>> upower -i `upower -e | grep 'BAT'`
    Upower工具
  2. batstat工具 >>> git clone https://github.com/Juve45/batstat.git
# 耗电量
root@TangramBook:~# ./batstat 
耗电量.png
  1. 电源统计工具(系统自带) >>> sudo apt-get install gnome-power-manager
    电源统计-详情

    电源统计-历史

LTP–linux稳定性测试,性能测试和压力测试

LTP套件是由 Linux Test Project 所开发的一套系统测试套件。它基于系统资源的利用率统计开发了一个测试的组合,为系统提供足够的压力。
Linux Test Project
项目官网http://linux-test-project.github.io/
邮件通知地址填写https://lists.linux.it/listinfo/ltp
源码地址https://github.com/linux-test-project/ltp

# INSTALL lib
root@TangramBook:~# apt install automake    
root@TangramBook:~# apt install autoconf    
root@TangramBook:~# apt install m4    
root@TangramBook:~# apt install g++    

# INSTALL lib
root@TangramBook:~# tar xzf ltp-XXXXXXXX.tar.gz    # 解压源码
root@TangramBook:~# cd ltp    # 开机时间
root@TangramBook:~# ./configure    # 检查环境配置
root@TangramBook:~# make all    
root@TangramBook:~# make install    
root@TangramBook:~# cd /opt/ltp    # 移动到安装目录
root@TangramBook:~# ./runltp    # 开始运行

# RUN LTP
#  修改基础运行时间 默认为1*5min
export LTP_TIMEOUT_MUL=5 #  修改基础运行时间 5*5min
# RUN 方法一
root@TangramBook:~# cd /opt/ltp/runltp./runltp -p -l /tmp/resultlog.20200401 -d /tmp -o /tmp/ltpscreen.20200401 -t 24h
        -p:人为指定日志格式,保证日志为可读格式
        -l:记录测试日志的文件
        -d:指定临时存储目录,默认为/tmp
        -o:直接打印测试输出到/tmp/ltpscreen.20200401
        -t:指定测试的持续时间 不指定则大致需3h/轮
# RUN 方法二
root@TangramBook:~# cd /opt/ltp/runltp./runalltests.sh  

LTP Runing log (部分输出结果)

  1. ltpscreen
[BEGIN] 2020/3/9 18:30:31
root@TangramBook:/opt/ltp# ./runltp -p -l /opt/ltp/output/a-resultlog.20200309-12h -d /tmp -o /opt/ltp/output/a-ltpscreen.20200309-12h -t 12h
INFO: creating /opt/ltp/output directory
INFO: no command files were provided. Executing following runtest scenario files:
syscalls fs fs_perms_simple fsx dio io mm ipc sched math nptl pty containers fs_bind controllers filecaps cap_bounds fcntl-locktests connectors power_management_tests hugetlb commands hyperthreading can cpuhotplug net.ipv6_lib input cve crypto kernel_misc uevent 
Checking for required user/group ids
'nobody' user id and group found.
'bin' user id and group found.
'daemon' user id and group found.
Users group found.
Sys group found.
Required users/groups exist.
If some fields are empty or look unusual you may have an old version.
Compare to the current minimal requirements in Documentation/Changes.

/etc/lsb-release
/etc/os-release
uname:
/proc/cmdline

Gnu C                  gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0
Clang                 
Gnu make               4.1
util-linux             2.31.1
mount                  linux 2.31.1(libmount 2.31.1: selinux, btrfs, assert, debug)
modutils               24
e2fsprogs              1.44.1
Linux C Library        > libc.2.27
Dynamic linker (ldd)   2.27
Procps                 3.3.12
iproute2               iproute2-ss180129
iputils                1.9.4
/opt/ltp/ver_linux: 115: /opt/ltp/ver_linux: ethtool: not found
Kbd                    2.0.4
Sh-utils               8.28
.................
AppArmor enabled
SELinux mode: unknown
no big block device was specified on commandline.
Tests which require a big block device are disabled.
You can specify it with option -z
COMMAND:    /opt/ltp/bin/ltp-pan   -e -S  -t 12h -a 7672     -n 7672 -p -f /tmp/ltp-6UDDAv3reI/alltests -l /opt/ltp/output/a-resultlog.20200309-12h -o /opt/ltp/output/a-ltpscreen.20200309-12h -C /opt/ltp/output/LTP_RUN_ON-a-ltpscreen.20200309-12h.failed -T /opt/ltp/output/LTP_RUN_ON-a-ltpscreen.20200309-12h.tconf
LOG File: /opt/ltp/output/a-resultlog.20200309-12h
OUTPUT File: /opt/ltp/output/a-ltpscreen.20200309-12h
FAILED COMMAND File: /opt/ltp/output/LTP_RUN_ON-a-ltpscreen.20200309-12h.failed
TCONF COMMAND File: /opt/ltp/output/LTP_RUN_ON-a-ltpscreen.20200309-12h.tconf
Running tests.......
PAN will run for 43200 seconds
........................................................................................................................................................................................................TEST : TRY TO WRITE ON A READ  LOCK:====================================================================================================TEST : TRY TO WRITE ON A WRITE LOCK:====================================================================================================TEST : TRY TO READ  ON A READ  LOCK:====================================================================================================TEST : TRY TO READ  ON A WRITE LOCK:====================================================================================================TEST : TRY TO SET A READ  LOCK ON A READ  LOCK:====================================================================================================TEST : TRY TO SET A WRITE LOCK ON A WRITE LOCK:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxTEST : TRY TO SET A WRITE LOCK ON A READ  LOCK:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxTEST : TRY TO SET A READ  LOCK ON A WRITE LOCK:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxTEST : TRY TO READ LOCK THE WHOLE FILE BYTE BY BYTE:====================================================================================================TEST : TRY TO WRITE LOCK THE WHOLE FILE BYTE BY BYTE:====================================================================================================........................................................................................................................................................................................................TEST : TRY TO WRITE ON A READ  LOCK:====================================================================================================TEST : TRY TO WRITE ON A WRITE LOCK:====================================================================================================TEST : TRY TO READ  ON A READ  LOCK:====================================================================================================TEST : TRY TO READ  ON A WRITE LOCK:====================================================================================================TEST : TRY TO SET A READ  LOCK ON A READ  LOCK:====================================================================================================TEST : TRY TO SET A WRITE LOCK ON A WRITE LOCK:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxTEST : TRY TO SET A WRITE LOCK ON A READ  LOCK:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxTEST : TRY TO SET A READ  LOCK ON A WRITE LOCK:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxTEST : TRY TO READ LOCK THE WHOLE FILE BYTE BY BYTE:====================================================================================================TEST : TRY TO WRITE LOCK THE WHOLE FILE BYTE BY BYTE:====================================================================================================........................................................................................................................................................................................................TEST : TRY TO WRITE ON A READ  LOCK:====================================================================================================TEST : TRY TO WRITE ON A WRITE LOCK:====================================================================================================TEST : TRY TO READ  ON A READ  LOCK:====================================================================================================TEST : TRY TO READ  ON A WRITE LOCK:====================================================================================================TEST : TRY TO SET A READ  LOCK ON A READ  LOCK:====================================================================================================TEST : TRY TO SET A WRITE LOCK ON A WRITE LOCK:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxTEST : TRY TO SET A WRITE LOCK ON A READ  LOCK:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxTEST : TRY TO SET A READ  LOCK ON A WRITE LOCK:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxTEST : TRY TO READ LOCK THE WHOLE FILE BYTE BY BYTE:====================================================================================================TEST : TRY TO WRITE LOCK THE WHOLE FILE BYTE BY BYTE:====================================================================================================........................................................................................................................................................................................................TEST : TRY TO WRITE ON A READ  LOCK:====================================================================================================TEST : TRY TO WRITE ON A WRITE LOCK:====================================================================================================TEST : TRY TO READ  ON A READ  LOCK:====================================================================================================TEST : TRY TO READ  ON A WRITE LOCK:====================================================================================================TEST : TRY TO SET A READ  LOCK ON A READ  LOCK:====================================================================================================TEST : TRY TO SET A WRITE LOCK ON A WRITE LOCK:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxTEST : TRY TO SET A WRITE LOCK ON A READ  LOCK:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxTEST : TRY TO SET A READ  LOCK ON A WRITE LOCK:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxTEST : TRY TO READ LOCK THE WHOLE FILE BYTE BY BYTE:====================================================================================================TEST : TRY TO WRITE LOCK THE WHOLE FILE BYTE BY BYTE:====================================================================================================........................................................................................................................................................................................................TEST : TRY TO WRITE ON A READ  LOCK:====================================================================================================TEST : TRY TO WRITE ON A WRITE LOCK:====================================================================================================TEST : TRY TO READ  ON A READ  LOCK:====================================================================================================TEST : TRY TO READ  ON A WRITE LOCK:====================================================================================================TEST : TRY TO SET A READ  LOCK ON A READ  LOCK:====================================================================================================TEST : TRY TO SET A WRITE LOCK ON A WRITE LOCK:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxTEST : TRY TO SET A WRITE LOCK ON A READ  LOCK:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxTEST : TRY TO SET A READ  LOCK ON A WRITE LOCK:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxTEST : TRY TO READ LOCK THE WHOLE FILE BYTE BY BYTE:====================================================================================================TEST : TRY TO WRITE LOCK THE WHOLE FILE BYTE BY BYTE:====================================================================================================........................................................................................................................................................................................................TEST : TRY TO WRITE ON A READ  LOCK:====================================================================================================TEST : TRY TO WRITE ON A WRITE LOCK:====================================================================================================TEST : TRY TO READ  ON A READ  LOCK:====================================================================================================TEST : TRY TO READ  ON A WRITE LOCK:====================================================================================================TEST : TRY TO SET A READ  LOCK ON A READ  LOCK:====================================================================================================TEST : TRY TO SET A WRITE LOCK ON A WRITE LOCK:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxTEST : TRY TO SET A WRITE LOCK ON A READ  LOCK:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxTEST : TRY TO SET A READ  LOCK ON A WRITE LOCK:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxTEST : TRY TO READ LOCK THE WHOLE FILE BYTE BY BYTE:====================================================================================================TEST : TRY TO WRITE LOCK THE WHOLE FILE BYTE BY BYTE:====================================================================================================........................................................................................................................................................................................................TEST : TRY TO WRITE ON A READ  LOCK:====================================================================================================TEST : TRY TO WRITE ON A WRITE LOCK:====================================================================================================TEST : TRY TO READ  ON A READ  LOCK:====================================================================================================TEST : TRY TO READ  ON A WRITE LOCK:====================================================================================================TEST : TRY TO SET A READ  LOCK ON A READ  LOCK:====================================================================================================TEST : TRY TO SET A WRITE LOCK ON A WRITE LOCK:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxTEST : TRY TO SET A WRITE LOCK ON A READ  LOCK:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxTEST : TRY TO SET A READ  LOCK ON A WRITE LOCK:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxTEST : TRY TO READ LOCK THE WHOLE FILE BYTE BY BYTE:====================================================================================================TEST : TRY TO WRITE LOCK THE WHOLE FILE BYTE BY BYTE:====================================================================================================INFO: ltp-pan reported some tests FAIL
LTP Version: 20200120

       ###############################################################

            Done executing testcases.
            LTP Version:  20200120
       ###############################################################
  1. ltpscreen
#  resultlog
Test Start Time: Mon Mar  9 18:30:08 2020
-----------------------------------------
Testcase                                           Result     Exit Value
--------                                           ------     ----------
abort01                                            PASS       0    
accept01                                           PASS       0   
...省略部分...                                     ......      ...... 
msgstress02                                        PASS       0    
msgstress03                                        FAIL       6    

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

推荐阅读更多精彩内容

  • 1.描述计算机的组成及其功能 (一)计算机的组成 1.CPU 2.CPU风扇 3.BIOS 4.内存 5.硬盘 6...
    whamai阅读 1,362评论 0 1
  • feisky云计算、虚拟化与Linux技术笔记posts - 1014, comments - 298, trac...
    不排版阅读 3,754评论 0 5
  • 在小学的时候,我有一个朋友,我几乎从未见他笑过。 我曾经去过他家,是一座低矮且潮湿的小房子,他的父亲总不在家里。有...
    祈欢_3d11阅读 105评论 2 2
  • 双子座喜欢追求新鲜感,有点儿小聪明,就是耐心不够,往往做事都是三分钟热度,难以坚持,但是你的可爱性格会让很多人都喜...
    梦逸凡神阅读 703评论 0 1
  • 这个世界上致富的方法有很多,但并不是每一个富人都会那么无私的告诉你,他是凭借什么窍门致富的。 你可以通过买彩票致富...
    南糖掘金笔记阅读 2,180评论 0 15