Linux系统日常巡检脚本_第1页
Linux系统日常巡检脚本_第2页
Linux系统日常巡检脚本_第3页
Linux系统日常巡检脚本_第4页
Linux系统日常巡检脚本_第5页
已阅读5页,还剩6页未读, 继续免费阅读

下载本文档

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

文档简介

Linux系统⽇常巡检脚本—背景:在我们的⽇常⼯作中,需要对服务器的各项性能指标进⾏查看。以便排查风险,及时发现问题。该Linuxcpulog下⽣成巡检报告。PS:该脚本适⽤于RHEL、CENTOS等系统#!/bin/bashIPADDR=$(ifconfigeth0|grep'inetaddr'|awk-F'[:]''{print$13}')#环境变量PATH没设好,在cron⾥执⾏时有很多命令会找不到exportPATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/binsource/etc/profile[$(id-u)-gt0]&&echo"请⽤root⽤户执⾏此脚本!"&&exit1centosVersion=$(awk'{print$(NF-1)}'/etc/redhat-release)VERSION="2020-03-16"#⽇志相关PROGPATH=`echo$0|sed-e's,[\\/][^\\/][^\\/]*$,,'`[-f$PROGPATH]&&PROGPATH="."LOGPATH="$PROGPATH/log"[-e$LOGPATH]||mkdir$LOGPATHRESULTFILE="$LOGPATH/HostDailyCheck-$IPADDR-`date+%Y%m%d`.txt"#定义报表的全局变量report_DateTime=""#⽇期okreport_Hostname=""#主机名okreport_OSRelease=""#发⾏版本okreport_Kernel=""#内核okreport_Language=""#语⾔/编码okreport_LastReboot=""#最近启动时间okreport_Uptime=""#运⾏时间(天)okreport_CPUs=""#CPU数量okreport_CPUType=""#CPU类型okreport_Arch=""#CPU架构okreport_MemTotal=""#内存总容量(MB)okreport_MemFree=""#内存剩余(MB)okreport_MemUsedPercent=""#内存使⽤率%okreport_DiskTotal=""#硬盘总容量(GB)okreport_DiskFree=""#硬盘剩余(GB)okreport_DiskUsedPercent=""#硬盘使⽤率%okreport_InodeTotal=""#Inode总量okreport_InodeFree=""#Inode剩余okreport_InodeUsedPercent=""#Inode使⽤率okreport_IP=""#IP地址okreport_MAC=""#MAC地址okreport_Gateway=""#默认⽹关okreport_DNS=""#DNSokreport_Listen=""#监听okreport_Selinux=""#Selinuxokreport_Firewall=""#防⽕墙okreport_USERs=""#⽤户okreport_USEREmptyPassword=""#空密码⽤户okreport_USERTheSameUID=""#相同ID的⽤户okreport_PasswordExpiry=""#密码过期(天)okreport_RootUser=""#root⽤户okreport_Sudoers=""#sudo授权okreport_SSHAuthorized=""#SSH信任主机okreport_SSHAuthorized=""#SSH信任主机okreport_SSHDProtocolVersion=""#SSH协议版本okreport_SSHDPermitRootLogin=""#允许root远程登录okreport_DefunctProsess=""#僵⼫进程数量okreport_SelfInitiatedService=""#⾃启动服务数量okreport_SelfInitiatedProgram=""#⾃启动程序数量okreport_RuningService=""#运⾏中服务数okreport_Crontab=""#计划任务数okreport_Syslog=""#⽇志服务okreport_SNMP=""#SNMPOKreport_NTP=""#NTPokreport_JDK=""#JDK版本okfunctionversion(){echo""echo""echo"系统巡检脚本:Version$VERSION"}functiongetCpuStatus(){echo""echo""echo"############################CPU检查#############################"Physical_CPUs=$(grep"physicalid"/proc/cpuinfo|sort|uniq|wc-l)Virt_CPUs=$(grep"processor"/proc/cpuinfo|wc-l)CPU_Kernels=$(grep"cores"/proc/cpuinfo|uniq|awk-F':''{print$2}')CPU_Type=$(grep"modelname"/proc/cpuinfo|awk-F':''{print$2}'|sort|uniq)CPU_Arch=$(uname-m)echo"物理CPU个数:$Physical_CPUs"echo逻辑个数:$Virt_CPUs"echo"每:$CPU_Kernels"echo型号:$CPU_Type"echo架构:$CPU_Arch"#报表信息report_CPUs=$Virt_CPUs#CPU数量report_CPUType=$CPU_Type#CPU类型report_Arch=$CPU_Arch#CPU架构}functiongetMemStatus(){echo""echo""echo"############################内存检查############################"if[[$centosVersion<7]];thenfree-moelsefree-hfi#报表信息MemTotal=$(grepMemTotal/proc/meminfo|awk'{print$2}')#KBMemFree=$(grepMemFree/proc/meminfo|awk'{print$2}')#KBletMemUsed=MemTotal-MemFreeMemPercent=$(awk"BEGIN{if($MemTotal==0){printf100}else{printf\"%.2f\",$MemUsed*100/$MemTotal}}")report_MemTotal="$((MemTotal/1024))""MB"#(MB)report_MemFree="$((MemFree/1024))""MB"#内存剩余(MB)report_MemUsedPercent="$(awk"BEGIN{if($MemTotal==0){printf100}else{printf\"%.2f\",$MemUsed*100/$MemTotal}}")""%"#内存使⽤率%}functiongetDiskStatus(){echo""echo""echo"############################磁盘检查############################"df-hiP|sed's/Mountedon/Mounted/'>/tmp/inodedf-hTP|sed's/Mountedon/Mounted/'>/tmp/diskjoin/tmp/disk/tmp/inode|awk'{print$1,$2,"|",$3,$4,$5,$6,"|",$8,$9,$10,$11,"|",$12}'|column-t#报表信息diskdata=$(df-TP|sed'1d'|awk'$2!="tmpfs"{print}')#KBdisktotal=$(echo"$diskdata"|awk'{total+=$3}END{printtotal}')#KBdiskused=$(echo"$diskdata"|awk'{total+=$4}END{printtotal}')#KBdiskused=$(echo"$diskdata"|awk'{total+=$4}END{printtotal}')#KBdiskfree=$((disktotal-diskused))#KBdiskusedpercent=$(echo$disktotal$diskused|awk'{if($1==0){printf100}else{printf"%.2f",$2*100/$1}}')inodedata=$(df-iTP|sed'1d'|awk'$2!="tmpfs"{print}')inodetotal=$(echo"$inodedata"|awk'{total+=$3}END{printtotal}')inodeused=$(echo"$inodedata"|awk'{total+=$4}END{printtotal}')inodefree=$((inodetotal-inodeused))inodeusedpercent=$(echo$inodetotal$inodeused|awk'{if($1==0){printf100}else{printf"%.2f"$2*100/$1}}')report_DiskTotal=$((disktotal/1024/1024))"GB#(GB)report_DiskFree=$((diskfree/1024/1024))"GB"#硬盘剩余(GB)report_DiskUsedPercent="$diskusedpercent""%"#硬盘使⽤率%report_InodeTotal=$((inodetotal/1000))"K"#Inode总量report_InodeFree=$((inodefree/1000))"K"#Inode剩余report_InodeUsedPercent="$inodeusedpercent""%"#Inode使⽤率%}functiongetSystemStatus(){echo""echo""echo"############################系统检查############################"if[-e/etc/sysconfig/i18n];thendefault_LANG="$(grep"LANG="/etc/sysconfig/i18n|grep-v"^#"|awk-F'"''{print$2}')"elsedefault_LANG=$LANGfiexportLANG="en_US.UTF-8"Release=$(cat/etc/redhat-release2>/dev/null)Kernel=$(uname-r)OS=$(uname-o)Hostname=$(uname-n)SELinux=$(/usr/sbin/sestatus|grep"SELinuxstatus:"|awk'{print$3}')LastReboot=$(who-b|awk'{print$3,$4}')uptime=$(uptime|sed's/.*up\([^,]*\),.*/\1/')echo"系统:$OS"echo"发⾏版本:$Release"echo"内核:$Kernel"echo"主机名:$Hostname"echo"SELinux:$SELinux"echo"语⾔/编码:$default_LANG"echo"当前时间:$(date+'%F%T')"echo"最后启动:$LastReboot"echo"运⾏时间:$uptime"#报表信息report_DateTime=$(date+"%F%T")#⽇期report_Hostname="$Hostname"#主机名report_OSRelease="$Release"#发⾏版本report_Kernel="$Kernel"#内核report_Language="$default_LANG"#语⾔/编码report_LastReboot="$LastReboot"#最近启动时间report_Uptime="$uptime"#运⾏时间(天)report_Selinux="$SELinux"exportLANG="$default_LANG"}functiongetServiceStatus(){echo""echo""echo"############################服务检查############################"echo""if[[$centosVersion>7]];thenconf=$(systemctllist-unit-files--type=service--state=enabled--nor|grep"enabled")process=$(systemctllist-units--type=service--state=running--nor|grep".service")#报表信息report_SelfInitiatedService="$(echo"$conf"|wc-l)"#⾃启动服务数量report_RuningService="$(echo"$process"|wc-l)"#运⾏中服务数量elseconf=$(/sbin/chkconfig|grep-E":on|:启⽤")process=$(/sbin/service--status-all2>/dev/null|grep-E"isrunning|正在运⾏")#报表信息report_SelfInitiatedService="$(echo"$conf"|wc-l)"#⾃启动服务数量report_RuningService="$(echo"$process"|wc-l)"#运⾏中服务数量fiecho"服务配echo" "echo"$conf"|column-techo""echo"正在运⾏的服务"echo" "echo"$process"}functiongetAutoStartStatus(){echo""echo""echo"############################⾃启动检查##########################"conf=$(grep-v"^#"/etc/rc.d/rc.local|sed'/^$/d')echo"$conf"#报表信息report_SelfInitiatedProgram="$(echo$conf|wc-l)"#⾃启动程序数量}functiongetLoginStatus(){echo""echo""echo"############################登录检查############################"last|head}functiongetNetworkStatus(){echo""echo""echo"############################⽹络检查############################"if[[$centosVersion<7]];then/sbin/ifconfig-a|grep-vpackets|grep-vcollisions|grep-vinet6else#ipaforiin$(iplink|grepBROADCAST|awk-F:'{print$2}');doipaddshow$i|grep-E"BROADCAST|global"|awk'{print$2}'|tr'\n''';echo"";donefiGATEWAY=$(iproute|grepdefault|awk'{print$3}')DNS=$(grepnameserver/etc/resolv.conf|grep-v"#"|awk'{print$2}'|tr'\n'','|sed's/,$//')echo""echo"⽹关:$GATEWAY"echo"DNS:$DNS"#报表信息IP=$(ip-finetaddr|grep-v|grepinet|awk'{print$NF,$2}'|tr'\n'','|sed's/,$//')MAC=$(iplink|grep-v"LOOPBACK\|loopback"|awk'{print$2}'|sed'N;s/\n//'|tr'\n'','|sed's/,$//')report_IP="$IP"#IP地址report_MAC=$MAC#MAC地址report_Gateway="$GATEWAY"#默认⽹关report_DNS="$DNS"#DNS}functiongetListenStatus(){echo""echo""echo"############################监听检查############################"TCPListen=$(ss-ntul|column-t)echo"$TCPListen"#报表信息report_Listen="$(echo"$TCPListen"|sed'1d'|awk'/tcp/{print$5}'|awk-F:'{print$NF}'|sort|uniq|wc-l)"}functiongetCronStatus(){echo""echo""echo"############################计划任务检查########################"Crontab=0forshellin$(grep-v"/sbin/nologin"/etc/shells);doforuserin$(grep"$shell"/etc/passwd|awk-F:'{print$1}');docrontab-l-u$user>/dev/null2>&1status=$?if[$status-eq0];thenecho"$user"echo" "crontab-l-u$userletCrontab=Crontab+$(crontab-l-u$user|wc-l)echo""fidonedone#计划任务find/etc/cron*-typef|xargs-ils-l{}|column-tletCrontab=Crontab+$(find/etc/cron*-typef|wc-l)#报表信息report_Crontab="$Crontab"#计划任务数}functiongetHowLongAgo(){#计算⼀个时间戳离现在有多久了datetime="$*"[-z"$datetime"]&&echo"错误的参数:getHowLongAgo()$*"Timestamp=$(date+%s-d"$datetime")#转化为时间戳Now_Timestamp=$(date+%s)Difference_Timestamp=$(($Now_Timestamp-$Timestamp))days=0;hours=0;minutes=0;sec_in_day=$((60*60*24));sec_in_hour=$((60*60));sec_in_minute=60while(($(($Difference_Timestamp-$sec_in_day))>1))doletDifference_Timestamp=Difference_Timestamp-sec_in_dayletdays++donewhile(($(($Difference_Timestamp-$sec_in_hour))>1))doletDifference_Timestamp=Difference_Timestamp-sec_in_hourlethours++doneecho"$days天$hours⼩时前"}functiongetUserLastLogin(){#获取⽤户最近⼀次登录的时间,含年份#last命令不⽀持显⽰年份,只"last-tYYYYMMDDHHMMSS"表⽰某个时间之间的登录,我#们只能⽤最笨的⽅法了,对⽐今天之前和今年元旦之前(或者去年之前和前年…)某个⽤户#登录次数,如果登录统计次数有变化,则说明最近⼀次登录是今年。username=$1:${username:="`whoami`"}thisYear=$(date+%Y)oldesYear=$(last|tail-n1|awk'{print$NF}')while(($thisYear>=$oldesYear));dologinBeforeToday=$(last$username|grep$username|wc-l)loginBeforeNewYearsDayOfThisYear=$(last$username-t$thisYear"0101000000"|grep$username|wc-l)if[$loginBeforeToday-eq0];thenecho"从未登录过"breakelif[$loginBeforeToday-gt$loginBeforeNewYearsDayOfThisYear];thenlastDateTime=$(last-i$username|head-n1|awk'{for(i=4;i<(NF-2);i++)printf"%s",$i}')"$thisYear"#格式如:SatNov220:332015lastDateTime=$(date"+%Y-%m-%d%H:%M:%S"-d"$lastDateTime")echo"$lastDateTime"breakelsethisYear=$((thisYear-1))fidone}functiongetUserStatus(){echo""echo""echo"############################⽤户检查############################"#/etc/passwd最后修改时间pwdfile="$(cat/etc/passwd)"Modify=$(stat/etc/passwd|grepModify|tr'.'''|awk'{print$2,$3}')echo"/etc/passwd最后修改时间:$Modify($(getHowLongAgo$Modify)"echoecho"特权⽤户"echo" "RootUser=""foruserin$(echo"$pwdfile"|awk-F:'{print$1}');doif[$(id-u$user)-eq0];thenecho"$user"RootUser="$RootUser,$user"fidoneecho""echo"⽤户列表"echo" "USERs=0echo"$(echoUIDGIDHOMESHELL"forshellin$(grep-v"/sbin/nologin"/etc/shells;doforusernamein$(grep"$shell"/etc/passwd|awk-F:'{print$1}');douserLastLogin="$(getUserLastLogin$username)"echo"$pwdfile"|grep-w"$username"|grep-w"$shell"|awk-F:-vlastlogin="$(echo"$userLastLogin"|tr'''_')"'{print$1,$3,$4,$6,$7,lastlogin}'doneletUSERs=USERs+$(echo"$pwdfile"|grep"$shell"|wc-l)done)"|column-techo""echo"空密码⽤户"echo" "USEREmptyPassword=""forshellin$(grep-v"/sbin/nologin"/etc/shells);doforuserin$(echo"$pwdfile"|grep"$shell"|cut-d:-f1);dor=$(awk-F:'$2=="!!"{print$1}'/etc/shadow|grep-w$user)if[!-z$r];thenecho$rfidonedoneecho""echo"相同ID的⽤户"echo" "USERTheSameUID=""UIDs=$(cut-d:-f3/etc/passwd|sort|uniq-c|awk'$1>1{print$2}')foruidin$UIDs;doecho-n"$uid";USERTheSameUID="$uid"r=$(awk-F:'ORS="";$3=='"$uid"'{print":",$1}'/etc/passwd)echo"$r"echo""USERTheSameUID="$USERTheSameUID$r,"done#报表信息report_USERs="$USERs"#⽤户report_USEREmptyPassword=$(echo$USEREmptyPassword|sed's/^,//')report_USERTheSameUID=$(echo$USERTheSameUID|sed's/,$//')report_RootUser=$(echo$RootUser|sed's/^,//')#特权⽤户report_RootUser=$(echo$RootUser|sed's/^,//')#特权⽤户}functiongetPasswordStatus{echo""echo""echo"############################密码检查############################"pwdfile="$(cat/etc/passwd)"echo""echo"密码过期检"echo" "result=""forshellin$(grep-v"/sbin/nologin"/etc/shells);doforuserin$(echo"$pwdfile"|grep"$shell"|cut-d:-f1);doget_expiry_date=$(/usr/bin/chage-l$user|grep'Passwordexpires'|cut-d:-f2)if[[$get_expiry_date='never'||$get_expiry_date='never']];thenprintf"%-15s永不过期\n"$userresult="$result,$user:never"elsepassword_expiry_date=$(date-d"$get_expiry_date""+%s")current_date=$(date"+%s")diff=$(($password_expiry_date-$current_date))letDAYS=$(($diff/(60*60*24)))printf"%-15s%s天后过期\n"$user$DAYSresult="$result,$user:$DAYSdays"fidonedonereport_PasswordExpiry=$(echo$result|sed's/^,//')echo""echo"密码策略检"echo" "grep-v"#"/etc/login.defs|grep-E"PASS_MAX_DAYS|PASS_MIN_DAYS|PASS_MIN_LEN|PASS_WARN_AGE"}functiongetSudoersStatus(){echo""echo""echo"############################Sudoers检查#########################"conf=$(grep-v"^#"/etc/sudoers|grep-v"^Defaults"|sed'/^$/d')echo"$conf"echo""#报表信息report_Sudoers="$(echo$conf|wc-l)"}functiongetInstalledStatus(){echo""echo""echo"############################软件检查############################"rpm-qa--last|head|column-t}functiongetProcessStatus(){echo""echo""echo"############################进程检查############################"if[$(ps-ef|grepdefunct|grep-vgrep|wc-l)-ge1];thenecho""echo"僵⼫进";echo" "ps-ef|head-n1ps-ef|grepdefunct|grep-vgrepfiecho""echo"内存占TOP10"echo" "echo-e"PID%MEMRSSCOMMAND$(psaux|awk'{print$2,$4,$6,$11}'|sort-k3rn|head-n10)"|column-techo""echo"CPU占⽤TOP10"echo" "topb-n1|head-17|tail-11#报表信息report_DefunctProsess="$(ps-ef|grepdefunct|grep-vgrep|wc-l)"}}functiongetJDKStatus(){echo""echo""echo"############################JDK检查#############################"java-version2>/dev/nullif[$?-eq0];thenjava-version2>&1fiecho"JAVA_HOME=\"$JAVA_HOME\""#报表信息report_JDK="$(java-version2>&1|grepversion|awk'{print$1,$3}'|tr-d'"')"}functiongetSyslogStatus(){echo""echo""echo"############################syslog检查##########################"echo"服务状态:$(getStatersyslog)"echo""echo"/etc/rsyslog.conf"echo" "cat/etc/rsyslog.conf2>/dev/null|grep-v"^#|grep-v^\\$|sed/^$/d|column-t#报表信息report_Syslog="$(getStatersyslog)"}functiongetFirewallStatus(){echo""echo""echo"############################防⽕墙检查##########################"#防⽕墙状态,策略等if[[$centosVersion<7]];then/etc/init.d/iptablesstatus>/dev/null2>&1status=$?if[$status-eq0];thens="active"elif[$status-eq3];thens="inactive"elif[$status-eq4];thens="permissiondenied"elses="unknown"fielses="$(getStateiptables)"fiecho"iptables:$s"echo""echo"/etc/sysconfig/iptables"echo" "cat/etc/sysconfig/iptables2>/dev/null#报表信息report_Firewall="$s"}functiongetSNMPStatus(){#SNMP服务状态,配置等echoecho""echo"############################SNMP检查############################"status="$(getStatesnmpd)"echo"服务状态:$status"echo""if[-e/etc/snmp/snmpd.conf];thenecho"/etc/snmp/snmpd.conf"echo" "cat/etc/snmp/snmpd.conf2>/dev/null|grep-v"^#"|sed'/^$/d'fi#报表信息report_SNMP="$(getStatesnmpd)"}functiongetState(){if[[$centosVersion<7]];thenif[-e"/etc/init.d/$1"];thenif[`/etc/init.d/$1status2>/dev/null|grep-E"isrunning|正在运⾏"|wc-l`-ge1];thenr="active"elseelser="inactive"fielser="unknown"fielse#CentOS7+r="$(systemctlis-active$12>&1)"fiecho"$r"}functiongetSSHStatus(){,受信任主机等echoecho""echo"############################SSH检查#############################"#检查受信任主机pwdfile="$(cat/etc/passwd)"echo"服务状态:$(getStatesshd)"Protocol_Version=$(cat/etc/ssh/sshd_config|grepProtocol|awk'{print$2}')echo"SSH协议版本:$Protocol_Version"echo""echo"信任主"echo" "authorized=0foruserin$(echo"$pwdfile"|grep/bin/bash|awk-F:'{print$1}');doauthorize_file=$(echo"$pwdfile"|grep-w$user|awk-F:'{printf$6"/.ssh/authorized_keys"}')authorized_host=$(cat$authorize_file2>/dev/null|awk'{print$3}'|tr'\n'','|sed's/,$//')if[!-z$authorized_host];thenecho$user\"$authorized_host\"filetauthorized=authorized+$(cat$authorize_file2>/dev/null|awk'{print$3}'|wc-l)doneecho""echo"是否允ROOT远程登"echo" "config=$(cat/etc/ssh/sshd_config|grepPermitRootLogin)firstChar=${config:0:1}if[$firstChar=="#"];thenPermitRootLogin="yes"#默认是允许ROOT远程登录的elsePermitRootLogin=$(echo$config|awk'{print$2}')fiecho"PermitRootLogin$PermitRootLogin"echo""echo"/etc/ssh/sshd_config"echo" "cat/etc/ssh/sshd_config|grep-v"^#"|sed'/^$/d'#报表信息report_SSHAuthorized="$authorized"#SSH信任主机report_SSHDProtocolVersion="$Protocol_Version"#SSH协议版本report_SSHDPermitRootLogin="$PermitRootLogin"#允许root远程登录}functiongetNTPStatus(){#NTP服务状态,当前时间,配置等echoecho""echo"############################NTP检查#############################"if[-e/etc/ntp.conf];thenecho"服务状态:$(getStatentpd)"echo""echo"/etc/ntp.conf"echo" "cat/etc/ntp.conf2>/dev/null|grep-v"^#"|sed'/^$/d'fi#报表信息report_NTP="$(getStatentpd)"}functionuploadHostDailyCheckReport(){json="{\"DateTime\":\"$report_DateTime\",\"Hostname\":\"$report_Hostname\",\"OSRelease\":\"$report_OSRelease\",\"Kernel\":\"$report_Kernel\",\"Language\":\"$report_Language\",\"LastReboot\":\"$report_LastReboot\",\"Uptime\":\"$report_Uptime\",\"CPUs\":\"$report_CPUs\",\"CPUType\":\"$report_CPUType\",\"Arch\":\"$report_Arch\",\"MemTotal\":\"$report_MemTotal\",\"MemFree\":\"$report_MemFree\",\"MemUsedPercent\":\"$report_MemUsedPercent\",\"DiskTotal\":\"$report_DiskTotal\",\"DiskFree\":\"$report_DiskFree\",\"DiskUsedPercent\":\"$report_DiskUsedPercent\",\"InodeTotal\":\"$report_InodeTotal\",\"InodeFree\":\"$report_InodeFree\",\"InodeUsedPercent\":\"$report_InodeUsedPercent\",\"IP\":\"$report_IP\",\"MAC\":\"$report_MAC\",\"Gateway\":\"$report_Gateway\",\"DNS\":\"$report_DNS\",\"Listen\":\"$report_Listen\",\"Selinux\":\"$report_Selinux\",\"Firewall\":\"$report_Firewall\",\"USERs\":\"$report_USERs\",\"USEREmptyPassword\":\"$report_USEREmptyPassword\",\"USERTheSameUID\":\"$report_USERTheSameUID\",\"PasswordExpiry\":\"$report_PasswordExpiry\",\"RootUser\":\"$report_RootUser\",\"Sudoers\":\"

温馨提示

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

评论

0/150

提交评论