《我的IT维护手册》doc版.doc_第1页
《我的IT维护手册》doc版.doc_第2页
《我的IT维护手册》doc版.doc_第3页
《我的IT维护手册》doc版.doc_第4页
《我的IT维护手册》doc版.doc_第5页
已阅读5页,还剩91页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

天讯测试环境维护知识手册1.主机维护(HP为例)1.1.主机配置参数 machinfo1.2.磁盘情况查询df k bdf1.3.文件夹或文件大小查询 du ks * (当前目录所有对象大小清单) du ks xxx (xxx为文件夹或文件名) du -sk * | sort -nr1.4.清理垃圾文件 rm xxx (文件名) rm R xxx (xxx为文件夹)1.5定时清理垃圾文件5 1 * * * /tmp/lx_logclear2.shrootbss_test:/#cat /tmp/lx_logclear2.sh#!/bin/shecho nn*clear log begining *echo nn*crmdir log clearing *find /mboss/home/crmgz/tuxedo/crmdir/myLog -mtime +2 -exec rm ;find /mboss/home/crmgz/tuxedo/crmdir/log -mtime +2 -exec rm ;echo nn*crmdir log cleared *1.6.性能使用情况top hs11.7.配置IP地址ifconfig lan0 0 netmask up1.8.看登陆用户在干什么# whodo1.9.查看进程# ps -ef | grep xxx1.10.使用find命令例如:# find / -user ly(在根目录下搜索ly用户)# find /tmp -type f -atime +7(在/tmp目录下搜索7天都没有被访问过的文件)# find / -name core -exec rm -i (删除core文件)# find /tmp -atime +30 -size +1000c -exec ll -ud (列出/tmp目录下超过1000个字符长度且至少30天没有被访问过的文件)1.11.使用fuser命令来查看进程或者杀掉进程# fuser -u /myfsl/data:列出一个指定文件的进程# fuser -cu /myfsl:列出一个目录的所有进程1.12.用crontab命令管理cron文件# crontab -e:编辑并提交一个cron文件# crontab -l:查看cron文件# crontab -r:删除cron文件中制定的所有规划HP-UX中为用户增加CRONTAB权限的方法 /usr/adm/cronvi cron.allow如果用户名出现在 cron.allow 中即可使用cron是定时执行工具,可以在无需人工干预的情况下运行作业。crontab -u /设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数 crontab -l /列出某个用户cron服务的详细内容 crontab -r /删除某个用户的cron服务 crontab -e /编辑某个用户的cron服务 crontab 设置好的任务一般保存在文件里,可以修改这个文件来修改crontab.(不建议这样做) cron启动后每过一份钟读一次这个文件,检查是否要执行里面的命令。因此此文件修改后不需要重新启动cron服务。 /var/spool/cron/user四、格式:分钟(0-59) 小時(0-23) 日期(1-31) 月份(1-12) 星期(0-6)/0代表星期天1.13.CPU分析# sar 5 12查看CPU占用情况1.14.内存分析# vmstat n检查虚拟内存的使用情况1.15.交换空间分析# swapinfo检查交换空间的使用情况1.16.CLUSTER运行状况# cmviewcl v查看CLUSTER运行的详细信息1.17.core文件 当一个程序崩溃时,在进程当前工作目录的core文件中复制了该进程的存储图像。core文件仅仅是一个内存映象(同时加上调试信息),主要是用来调试的。处理:$ ls -l core*-rw-r-r- 1 crmgz bea 11683776 May 12 16:30 coregdb -c core然后输入where最后quit退出1.18.FTP文件传输常用命令:ftpopen 40 输入FTP用户名密码get put1.19.cp 复制命令语法: cp -p -r 文件 1 文件 2 . 目标说明: 将文件1(文件2 .)拷贝到目标上,目标不能与文件同名, 若目标是文件名,则拷贝的文件只能有一个,若目标是目录, 则拷贝的文件可以有多个,若目标文件不存在,则建立这个文件,若存在,则覆盖其以前的内容,若目标是目录,则将文件拷贝到这个目录下。- i 在覆盖已存在文件时作提示,若回答 y 则覆盖,其他则中止- p 不仅拷贝文件内容,还有修改时间,存取模式,存取控制表, 但不拷贝UID 及 GID- r 若文件名为目录,则拷贝目录下所有文件及子目录和它们的文件,此时目标必须为目录例子:cp file1 file2 将文件 file1 拷贝到文件 file2cp file1 file2 /tmp 将文件 file1 和文件 file2 拷贝到目录 /tmp 下cp -r /tmp /mytmp 将目录 /tmp 下所有文件及其子目录拷贝至目录/mytmp1.20.mv移动或重命名命令语法: mv -f -i 文件1 文件2. 目标说明: 将文件移动至目标,若目标是文件名,则相当于文件改名- i 在覆盖已存在文件时作提示,若回答 y 则覆盖,其他则中止- f 覆盖前不作任何提示例子:mv file1 file2 将文件 file1 改名为 file2mv file1 file2 /tmp 将文件 file1 和文件 file2 移动到目录 /tmp 下1.21.rm 删除命令语法: rm -f -i 文件.或 rm -r -f -i 目录名. 文件说明: 用来删除文件或目录- f 删除文件时不作提示- r 递归地删除目录及其所有子目录- i 删除文件之前先作提示例子:rm file1 删除文件 file1rm -i /tmp/* 删除目录 /tmp 下的所有文件rm -r /mytmp 递归地删除目录 /mytmp1.22.chmod赋权命令语法: chmod -R 模式 文件.或 chmod ugoa +|-|= rwxst 文件.说明: 改变文件的存取模式,存取模式可表示为数字或符号串,例如:chmod nnnn file , n为0-7的数字,意义如下:4000 运行时可改变UID2000 运行时可改变GID1000 置粘着位0400 文件主可读0200 文件主可写0100 文件主可执行0040 同组用户可读0020 同组用户可写0010 同组用户可执行0004 其他用户可读0002 其他用户可写0001 其他用户可执行nnnn 就是上列数字相加得到的,例如 chmod 0777 file 是指将文件 file 存取权限置为所有用户可读可写可执行。-R 递归地改变所有子目录下所有文件的存取模式u 文件主g 同组用户o 其他用户a 所有用户+ 增加后列权限- 取消后列权限= 置成后列权限r 可读w 可写x 可执行s 运行时可置UIDt 运行时可置GID例子:chmod 0666 file1 file2 将文件 file1 及 file2 置为所有用户可读可写chmod u+x file 对文件 file 增加文件主可执行权限chmod o-rwx 对文件file 取消其他用户的所有权限 1.23.chown 改属权语法: chown -R 文件主 文件.说明: 文件的UID表示文件的文件主,文件主可用数字表示, 也可用一个有效的用户名表示,此命令改变一个文件的UID,仅当此文件的文件主或超级用户可使用。-R 递归地改变所有子目录下所有文件的存取模式例子:chown mary file 将文件 file 的文件主改为 marychown 150 file 将文件 file 的UID改为1501.24.grep 搜索命令语法: grep 选项 模式 文件.说明: 在指定的文件中搜索模式,并显示所有包含模式的行,模式是一个正规表达式,在使用正规表达式时,最好将其引在单引号() 中,若指定文件为缺省,则使用标准输入,正规表达式可以是:. 匹配任意一个字符* 匹配0个或多个*前的字符 匹配行开头$ 匹配行结尾 匹配 中的任意一个字符,中可用 表示范围,例如a-z表示字母a 至z 中的任意一个 转意字符命令中的选项为:-b 显示块号-c 仅显示各指定文件中包含模式的总行数-i 模式中字母不区分大小写-h 不将包含模式的文件名显示在该行上-l 仅显示包含模式的文件名-n 显示模式所在行的行号-s 指定文件若不存在或不可读,不提示错误信息-v 显示所有不包含模式的行例子:grep good * 在所有文件中搜索含有字符串 good 的行grep myline mytext 在文件mytext中搜索行首出现myline字符串的行2.中间件维护知识2.1.Tuxedo2.1.1.非图形界面下的安装./tuxedo81_aix_32bit.bin -i console 加入 -i console则不需要图形支持2.1.2.察看版本和patch信息$TUXDIR/bin/tmadmin -v2.1.3.对ubb文件只做语法检查(不真正的load成TUXCONFIG)tmloadcf -n ubb2.1.4.tmboot/tmshutdown中的几个参数介绍-A 只启动/停止Tuxedo管理服务,如BBL-S 所有服务被启动/停止-g grpname 只启动/停止属于制定组名的服务-i svrid 只启动/停止制定ServID的服务-s svrname 只启动/停止制定服务名的服务2.1.5.tuxedo有关域(domain)管理的命令$ dmadminpd -d LocalTUXDomainID 显示与本地域关联的其他域co -d LocalTUXDomainID -R RemoteDomainID 手动连接远程域2.1.6.如何清除IPC资源如果你不想用tmshutdown停止或者当$TUXCONFIG文件被误删除而无法shutdown TUXEDO服务时,可以尝试直接删除当前用户的ipc资源,如下:ipcs | grep logname | awk print ipcrm -$1,$2 |sh -x2.1.7.反编译tuxconfig 生成 ubb文件a) tmunloadcf 查看当前TUXCONFIG中的ubb内容b) export TUXCONFIG=pwd/tuxconfig 比较简单的设置TUXCONFIG的命令2.1.8.Tuxedo非正常状态下的关闭1) 执行tmshutdown -y,如果shutdown不成功,转入下一步(此时一般来说,TUXEDO的状态已经处于不正常了)。2)执行tmipcrm -y,如果shutdown不成功,转入下一步。3)要用到AWK,所以要求在Unix下,或者在WINDOWS下装了Cygwin。3)执行ipcrm ipcs|grep $USER|awk print -$1 $2。执行了3)肯定就可以关闭掉了。一般情况下,在非生产机上经常来一个killall -9,将该用户所有的进程都杀掉。2.1.9.隐藏显示服务隐藏服务unadvertise (unadv) -q qaddress -g groupname -i srvid |-g groupname -i srvid service显示服务advertise (adv) -q qaddress -g groupname -i srvid | -g groupname -i srvidservice:func上面两个命令只能在单独登录tmadmin时使用。重复登录tmadmin后出现TMADMIN_CAT:199: WARN: Cannot become administrator.Limited set of commands available.提示不能使用上面命令。2.1.10.WSL配置参数WSL的配置重点要注意其CLOPT中几个关键参数的指定:-m, -M, -x, WSH启动的最大、最小个数,及每个WSH可同时处理的并发请求数,-M * -x = MAXWSCLIENTS;-I, 客户端与服务器端建立连接的超时时间;-N, 客户端发起请求的响应超时时间;-T, 客户端在与服务器端建立连接后,允许最大的空闲时间;-H, 穿防火墙时,防火墙的ip-p, WSH分配的起始端口-P, WSH分配的结束端口。 -p 9901 -P 9915 指定端口范围 990199152.1.11 部分统计信息查看部分统计信息bbs(1) 命令: bbstats 简写:bbs bbsCurrent Bulletin Board Status:Current number of servers: 335Current number of services: 2324Current number of request queues: 27Current number of server groups: 11Current number of interfaces: 02.2.weblogic2.2.1 新建域用weblogic的安装用户进入主目录,如10.3版本 wlserver_10.3/common/bin 执行新建域的SHELL脚本,config.sh-1|Create a new WebLogic domain-1|Choose Weblogic Platform components| Name | Value | _|_|_| 1| *User name: | weblogic | -创建domain用户weblogic 2| *User password: | | 3| *Confirm user password: | | 4| Description: | This user is the default administrator. |Use above value or select another option: 1 - Modify User name 2 - Modify User password 3 - Modify Confirm user password 4 - Modify Description-1|Development Mode 选择开发模式-1|Sun SDK 1.6.0_16 /usr/jdk/instances/jdk1.6.0 选择主机的SDK *To keep the default or template settings, and proceed directly to name and create your domain, leave No selected. 1|Yes -2|No-1|I dont want to change anything here | Name | Value | _|_|_| 1| *Name: | AdminServer | 2| Listen address: | All Local Addresses | 3| Listen port: | 7001 | 4| SSL listen port: | N/A | 5| SSL enabled: | false |完成2.2.2 删除域1)删除 $DOMAIN_HOME下的doamin目录,例如:XXXuser_projectsdomains下的base_domain。2)检查domain-registry.xml,删除相应domain的描述条目。只有删除该条目,才能使用weblogic的配置向导重新创建相同名字的domain。2.2.3 清缓存WebLogic很可能还在用着之前旧版程序,它还在用着旧的缓存解决方法如下:登录WebLogic的管理Console,停止并删除应用;停止WebLogic;删除域目录中的serversXXXServercache和serversXXXServertmp两个目录;重新启动WebLogic;部署新版应用。如果嫌麻烦不想停止和重启WebLogic,还可以试一下这样:停止并删除应用;在serversXXXServertmp_WL_user目录中找到你的应用的相应目录,然后删掉它;部署新版应用。2.2.4 配置文件工程配置文件: 布署的应用工程路径下config.xml 3 数据库维护知识3.1双机集群管理命令:命令 参数 含义cmruncl -v 运行集群,将启动应用cmhaltcl -f -v 停止集群,将停止所有应用cmrunnode -v 运行节点,在指定主机启动MC进程cmhaltnode -f -v 停止节点,在指定主机停止MC进程,将导致应用切换cmviewcl -v 查看集群状态包管理命令:命令 参数 含义cmrunpkg -v 包名称 运行应用包cmhaltpkg -v 包名称 停止应用包cmmodpkg -e 包名称 使应用包可切换cmmodpkg -e -n node1包名称 使节点node1可运行应用包注:1、节点名是指主机的名字,HP_cd1,HP_cd2;2、包名称是指MC配置以后,给应用包起的名字,pkgsyb,pkgusr97 定期清理日志双机软件的日志存放在/etc/cmcluster/pkgname/tl.log可以用# /etc/cmcluster/pkgname/tl.log清空日志文件应保护的文件/etc/cmcluster 下的文件是MC的配置文件,注意保护/.rhosts, /etc/passwd, /etc/group, /etc/hosts, /etc/rc.config.d/cmcluster, /etc/lvmrc, 等文件的改动均会关系到MC的正常运作,请注意网络的配置两台主机的LAN2是不配置的,它是LAN1的备份网络逻辑卷的使用vgsyb,vgusr97这几个共享的volume group已被写上MC的标志,只有当MC进程cmcld运行时才能将这些volume group激活。如果要在MC没有运行的状态下激活,则必须将MC的标志去除。以vgsyb为例:# vgchange -c n vgsyb# vgchange -a y vgsyb要使MC能够正常运行,必须再加上MC的标志:# vgchange -a n vgsyb# vgchange -c y vgsyb未停MC而shutdown主机如果在shutdown主机之前忘记停止MC,那在下一次启动MC时会遇到因逻辑卷状态不对而不能启动MC的情况,此时您可作以下工作:A、执行cmruncl启动MC的后台进程cmcldB、对所有的共享VG作vgchange -c y加上MC标记,如:vgchange -c y vgsybC、执行cmhaltcl -f停止MC的后台进程D、再执行cmruncl重新启动MC即可3.2 RAC 管理(crs_stat、crsctl、srvctl)CRS及相关服务的常用命令的演示1、查看状态的命令# suoracle -先切换到oracle用户$ crs_stat -t -查看crs及所有的service的状态$ crsctl check crs -用crsctl命令,检查crs相关服务的状态$ srvctl status nodeapps -n db01 (db02) -使用srvctl查看所有节点上的服务是否正常$ srvctl status database -d db -使用srvctl查看数据库状态启动和关闭相关服务的命令# su oracle$ crs_startall -启动所有的crs服务$ crs_stopall -停止所有的crs服务$ crsctl start crs -启动crs服务$ crsctl stop crs -停止crs服务$ srvctl start nodeapps -n db01(db02) -启动某节点上所有的应用$ srvctl stop nodeapps -n db01(db02) -停止某节点上所有的应用$ srvctl start listener -n db01(db02) -启动某个节点的listener$ srvctl stop listener -n db01(db02) -停止某个节点的listener$ srvctl start instanced dbi db01(db02) -启动某个instance$ srvctl stop instanced dbi db01(db02) -停止某个instance$ srvctl start databased db -启动数据库$ srvctl stop databased db -停止数据库3.3 Oracle RAC日常基本维护命令 列出crs服务列出crs服务状态:crmap15b/#crs_stat -tName Type Target State Host -ora.5B.lsnr application ONLINE ONLINE crmap15b ora.15b.gsd application ONLINE ONLINE crmap15b ora.15b.ons application ONLINE ONLINE crmap15b ora.15b.vip application ONLINE ONLINE crmap15b ora.6B.lsnr application ONLINE ONLINE crmap16b ora.16b.gsd application ONLINE ONLINE crmap16b ora.16b.ons application ONLINE ONLINE crmap16b ora.16b.vip application ONLINE ONLINE crmap16b ora.t1.inst application ONLINE ONLINE crmap15b ora.t2.inst application ONLINE ONLINE crmap16b ora.crmtest.db application ONLINE ONLINE crmap16b ora.st2.srv application ONLINE ONLINE crmap16b ora.test.cs application ONLINE ONLINE crmap16b ora.st1.srv application ONLINE ONLINE crmap15b ora.test.cs application ONLINE ONLINE crmap15b ora.st2.srv application ONLINE ONLINE crmap16b ora.test.cs application ONLINE ONLINE crmap16b ora.st2.srv application ONLINE ONLINE crmap16b ora.test.cs application ONLINE ONLINE crmap16b 停止某个CRS服务:Crs_stop xxxxxx启动某个CRS服务Crs_start xxxxxx停启所有服务: crsctl start crs - starts all CRS daemons. crsctl stop crs - stops all CRS daemons. Stops CRS resources in case of cluster. crsctl start resources - starts CRS resources. crsctl stop resources - stops CRS resources.列出配置的所有数据库 crmap15b/#srvctl config databasecrmtest所有实例和服务的状态 crmap15b/#srvctl status database -d crmtestInstance crmtest1 is running on node crmap15bInstance crmtest2 is running on node crmap16b单个实例的状态 crmap15b/#srvctl status instance -d crmtest -i crmtest1Instance crmtest1 is running on node crmap15b在数据库全局命名服务的状态 crmap15b/#srvctl status service -d crmtestService szcrmtest is running on instance(s) crmtest2Service dgcrmtest is running on instance(s) crmtest2Service gzcrmtest is running on instance(s) crmtest1Service ivpntest is running on instance(s) crmtest2特定节点上节点应用程序的状态 crmap15b/#srvctl status nodeapps -n crmap15bVIP is running on node: crmap15bGSD is running on node: crmap15bListener is running on node: crmap15bONS daemon is running on node: crmap15bASM 实例的状态 rootnode1 # srvctl status asm -n node1ASM instance +ASM1 is running on node node1.rootnode1 # srvctl status asm -n node2ASM instance +ASM2 is running on node node2. 显示 RAC 数据库的配置 crmap15b/#srvctl config database -d crmtestcrmap15b crmtest1 /home/oracle/product/10.2.0/dbcrmap16b crmtest2 /home/oracle/product/10.2.0/db显示指定集群数据库的所有服务 crmap15b/#srvctl config service -d crmtestszcrmtest PREF: crmtest2 AVAIL: crmtest1dgcrmtest PREF: crmtest2 AVAIL: crmtest1gzcrmtest PREF: crmtest1 AVAIL: crmtest2ivpntest PREF: crmtest2 AVAIL: crmtest1显示节点应用程序的配置 (VIP、GSD、ONS、监听器) crmap15b/#srvctl config nodeapps -n crmap15b -a -g -s -lVIP exists.: /crmap15b_vip/28//lan900GSD exists.ONS daemon exists.Listener exists.利用srvctl config命令可以看到现有数据库的配置信息: crmap15b/#srvctl config database -d crmtest -acrmap15b crmtest1 /home/oracle/product/10.2.0/dbcrmap16b crmtest2 /home/oracle/product/10.2.0/dbDB_NAME: crmtestORACLE_HOME: /home/oracle/product/10.2.0/dbSPFILE: /dev/vgcrmywdb01/rcrmywspfileDOMAIN: nullDB_ROLE: nullSTART_OPTIONS: nullPOLICY: AUTOMATICENABLE FLAG: DB ENABLED显示 ASM 实例的配置 rootnode1 # srvctl config asm -n node1+ASM1 /opt/ora10g/product/10.2.0/db_1rootnode1 # srvctl config asm -n node2+ASM2 /opt/ora10g/product/10.2.0/db_1 集群中所有正在运行的实例 SQL r1 SELECT2 inst_id3 , instance_number inst_no4 , instance_name inst_name5 , parallel6 , status7 , database_status db_status8 , active_state state9 , host_name host10 FROM gv$instance11* ORDER BY inst_idrows will be truncated INST_ID INST_NO INST_NAME PAR STATUS DB_STATUS STATE- - - 1 1 NOVADB1 YES OPEN ACTIVE NORMAL2 2 NOVADB2 YES OPEN ACTIVE NORMAL SQL 位于磁盘组中的所有数据文件 SQL select name from v$datafileunionselect member from v$logfileunionselect name from v$controlfileunionselect name from v$tempfile; 属于“RAC_DISK”磁盘组的所有 ASM 磁盘 SQL SELECT path FROM v$asm_disk WHERE group_number IN (select group_number from v$asm_diskgroup where name = RAC_DISK); 3.4 SRVCTL命令介绍SRVCTL命令可以控制RAC数据库中的instance,listener以及services。通常SRVCTL在ORACLE用户下执行。下面我们来介绍srvctl命令。1、通过SRVCTL命令来start/stop/check所有的实例:$ srvctl start|stop|status database -d 2、start/stop指定的实例:$ srvctl start|stop|status instance -d -i 3、列出当前RAC下所有的$ srvctl config database -d 4、start/stop/check 所有的nodeapps,比如:VIP, GSD, listener, ONS:$ srvctl start|stop|status nodeapps -n 5、如果你使用ASM,srvctl也可以start/stop ASM实例:$ srvctl start|stop asm -n -i -o 6、可以获取所有的环境信息:$ srvctl getenv database -d -i 7、设置全局环境和变量:$ srvctl setenv database -d -t LANG=en 8、从OCR中删除已有的数据库:$ srvctl remove database -d 9、向OCR中添加一个数据库:$ srvctl add database -d -o -m -p -A /netmask -r PRIMARY | PHYSICAL_STANDBY |LOGICAL_STANDBY -s 10、向OCR中添加一个数据库的实例:$ srvctl add instance -d -i -n $ srvctl add instance -d -i -n 11、向OCR中添加一个ASM实例:$ srvctl add asm -n -i -o 12、添加一个service$ srvctl add service -d -s -r -a -P -u 13、修改在其他节点上的service(修改的是配置,此时使用的实例不变)$ srvctl modify service -d -s -I -t 14、relocate 某个节点的service到其他节点(当taf转到avail实例上后,又想转到pre的实例上,用relocate)srvctl relocate service -d -s -I -t 3.5 crsctl命令介绍Usage: crsctl check crs - checks the viability of the CRS stack crsctl check cssd - checks the viability of CSS crsctl check crsd - checks the viability of CRS crsctl check evmd - checks the viability of EVM crsctl set css - sets a parameter override crsctl get css - gets the value of a CSS parameter crsctl unset css - sets CSS parameter to its default crsctl query css votedisk - lists the voting disks used by CSS crsctl add css votedisk - adds a new voting disk crsctl delete css votedisk - removes a voting disk crsctl enable crs - enables startup for all CRS daemons crsctl disable crs - disables startup for all CRS daemons crsctl start crs - starts all CRS daemons. crsctl stop c

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论