linux运维从入门到高级案例_第1页
linux运维从入门到高级案例_第2页
linux运维从入门到高级案例_第3页
linux运维从入门到高级案例_第4页
linux运维从入门到高级案例_第5页
已阅读5页,还剩152页未读 继续免费阅读

下载本文档

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

文档简介

目Linux 1Linux操作系统简 2Linux发展趋 3Linux系统安 4Linux学习技 1 初 2Linux常用命 3Linux用户权 4Linux网络配 1构建NTP时间服务 2构建DHCP服务 3搭建Samba服务 4搭建NFS服务 5搭建FTP服务 6构建ApacheWEB服务 7构建MySQL服务 8LAMP架构搭 9Cacti平台搭 10Nagios平台搭 11Kickstart自动化安装平 LinuxS编 1S编程简 2S变量设 3S 4S案 5S数组编 1构建NginxWEB服务 1NginxWEB安 2Nginx虚拟主机配 3Nginx性能优 4Nginx参数深入理 5NginxRewrite规 5.2构建Rsync同步服务 1Rsync服务端配 2Rsync基于SSH同 3Rsync实时同步配 5.3Tomcat/ResinJAVA服务 1Tomcat安装配 2Tomcat性能优 3Resin安装配 5.3.4Resin性能优 5.3.5Resin多实例配 5.4NginxTomcat动静分 5.5LNAMP高性能架构配 5.6构建DNS解析服务 5.7MySQL主从高可用架 5.8LVS+Keepalived负载均 5.9Squid缓存服务器配 1Linux量17万行,当时是按照完全自由免费的协议发布,随后正式采用GPL(GeneralPublicLicense的缩写,是一份GNU通用公共)协议。2Linux随着IT产业的不断发展,用户对体验要求也越来越高,而目前主流后端承载系统都是Linux系统,目前Android全部基于Linux内核研发。企业大数据、云、Linux2010年据有关部门统计:将来几年内我国软件行业的从业机会十分庞大,中国每年对软件人才的需求将达到50万人左右。而对于Linux专业人才的就业前景,更是广阔;据悉在未来5-10年内 Linux专业人才的需求将达到120万+!尤其是有经验的资深的Linux工程师目前非常的缺乏,薪资也是非常,平均月薪都是15-20K,能力强的薪资更3Linux,Linux区Linux系统以文件的方式,所有的文件都是在某个下的,类似于windowsLinux给硬盘进行分区。虽然现在各种版本的Linux已经提供了友好的图形交互界面,但是LinuxwindowsCD最多是4个。LinuxVMwareworkstationCentOS5.8(1024M第八步,设置root,至少六位,点击下一步第十步,系统安装包选择,左侧选择“开发 右侧选择”开发工具“和“开发库,4Linux初学者可以自己安装虚拟机,然后把linux常用命令例如cd、ls、od、useradd、vi,遇到问题后可以在搜索,搜索的时候多看几篇文章,综合最好的文章来解决问题。平时多积累s编程,可以在网上查找前辈们写的非常好的s,自己下来多那接下来,系统的来了解Linux系统各 1 文件夹的大致功能 树的有/、/root、/home、/usr、/bin等 。下面是一个典型的linux /bin存放必要/boot/dev/etc/home普通用户的宿 ,用户数据存放在其 /lib/mnt/proc存放进程和系统信/root/sbin/tmp/usr/var2Linux[root@localhost~]#我们了解linux由很 文件构成,那我们来学习第一个Linux命令cdcd/home;解析:进入cd/root进入/root ;cd../返回上一级 ;cd./当前 (.解为相对路径;例如cd/hom/test,cd加完整的路径,可以理解为绝对路径)接下来继续学习令 ./查看当 所有的文件 -a mkdir创 ,用法 test,命令后 的名称rmdirrm删除文件或 ,用法rm test.txt(-r表示递归,-f表示强制)cp拷贝文件,用法,cp old.txt/tmp/new.txt,常用来备份;如果拷贝需要加–r参数。mv重命名或者移动文件或 ,用法,mvold.txttouch,touchtest.txt,如果文件存在,则表示修改当前文件时间。Useradduseraddwugk,userdelGroupaddgroupaddwugk1,groupdelfind查找文件或 ,用法find/home-name find后接查找的 /home-name “*.txt”;查找/home vi,vi如果想直接退出,不保存,可以执行:q!,q!叹号表示强制退出。catcattest.txttest.txtmorecatcatmorecattest.txt|moretext|echoechook,ok test.txtoktest.txt初学者常见令就如上所示当然还有很多深入令需要学习后面的课程会讲解3Linux用户文件可以查看到每个用户的独立的UID。每一个文件或者的权限,都包含一个用户权限、一个组的权限、其他限,例rootrootrootroot[root@node1~]#ls-l-rw-r--r--1rootroot91May 720:21monitor_log.sh[root@node1~]#chown–Rtest:test monitor_log.sh即可。利用ls-l命令可以看到某个文件或 [root@node1~]#ls-l-rw-r--r--1rootroot91May 720:21monitor_log.sh[root@node1~]#第一位表示文件类型,-表示文件,d表示 第一组:2-4位表示文件所有者的权限,即用户user权限,简称u(4w(2x(1如果给某个文件,命令为od:od7774Linux熟悉了常用令和Linux权限,那接下来如何让所在的Linux系统上网呢?管Linux服务器默认网卡配置文件在/etc/sysconfig/network-scripts/下,命名的名称DELLR7204IP,vi/etc/sysconfig/network-scripts/ifcfg-eth0#AdvancedMicroDevices[AMD]79c970[PCnet32LANCE]#AdvancedMicroDevices[AMD]79c970[PCnet32LANCE] [yes|no](重启网卡是否激活设备BOOTPROTO=static[none|static|bootp|dhcp](不使用协议|静态分配|BOOTP|DHCP IPADDR=0#IP地址NETMASK=GATEWAY=#网关地址/etc/init.d/networkrestarteth0IP网卡配置完毕,如果来配置DNS,首先要知道DNS配置在哪 文件下,/etc/resolv.confnameservernameserver可以看看效果:IP配置完毕后,我们可以通过工具来连接Linux服务器,常见的Linux连接工具有:putty、secureCRT(主流、xs、xmanger等工具。quickconnectIP22,然后点击下方的connect连接,会提示输入,输入即可。弹出输入框进入界面,与服务器真实登录一样,然后可以执行命令的服务配置,LinuxLinux1NTP互联网的时间服务器也有很多,例如ntpdate NTP服务器端口为UDP的123,那就需要在本地开启运行客户端123端口,vi/etc/sysconfig/iptables-AINPUTmstatestateNEWmudppudpdport123jACCEPTNTPyuminstallntpntpdateyntp.conf /etp/ntp.confvi/etc/ntp.conf只两行,把#号去掉即可server #localclock stratum10/etc/init.d/ntpdstart(注意*:ntpd“noserversuitableforsynchronizationfound”)crontab-1006***usr/sbin/ntpdatentp-serveripntpdate,yumyinstallntp以下是ntp服务器配置文件内容(局域网NTP,如果需要跟同步添加server即可)driftfile/var/lib/ntp/driftrestrictdefaultkodnomodifynotrapnopeernoqueryrestrict-6defaultkodnomodifynotrapnopeernoqueryrestrictrestrict-6 #localclock stratum10includefile/etc/ntp/crypto/pwkeysrestrictdefaultNTPrestrictrestrictserverrestrict#开放server我们ntp服务的权driftfilebroadcastdelay * 55>>/data/logs/ntp.log2DHCPDHCP(DynamicHostConfigurationProtocol,动态主机配置协议)是一个局域网的网DHCP的服务端口。TCP/IPIPDHCP dhcpdhcp-develyDHCP/etc/dhcpd.confddns-update-styleinterim;ignore-updates; allowbooting;allow netmask{#defaultgatewayoption optionsubnet- optionnis-".org";#option-name"0"; option-name-servers optionntp-servers optionnetbios-name-servers (defaultishybrid). #--youunderstandNetbiosverywell optionnetbios-node-type2; 0000;hostns{hardwareethernet fixed-address01;}}选项解释ddns-update-styleinterim|ad-DHCPDNS态信息更新模式:interimDNSnext-server tftpserver址-subnet-option-DNShost-time-为客户端设定时间的偏移时间,单restart客户端要从这个DHCP服务器获取IP,需要做简单的设置,如果是linux需要把/etc/sysconfig/network-scritps/ifcfg-eth0BOOTPROTOdhcp,windowsIP3Samba机及其他资源。通过设置“NetBIOSoverTCP/IP”使得Samba不但能与局域网络主机资源,还Yuminstallsambacp/etc/samba/smb.conf/etc/samba/smb.conf.bak;egrep-v"#|^$"|grepv"^;">/etc/samba/smb.confsmb.confworkgroup=serverstring=SambaServerVersionsecurity=sharepassdbbackend=tdbsamloadprinters=yescupsoptions=rawcomment=Temporaryfilespacereadonly=nocomment=Temporaryfilespacereadonly=no[root@node1~]#/etc/init.d/smbShuttingdownSMB ShuttingdownNMB StartingSMB [OKStartingNMB [OKworkgroupWORKGROUPSambaServerserverstring=SambaServerVersion%vSambaServervSambasecurity=user:SambaServer共享只能被的用户,由SambaServer负责检查账号和的正确性。账号和要在SambaServerserverWindowsNT/2000SambaServerWindowsNT上,使用WindowsNT进行Samba认证,服务器可以自动认证全部用户和口令,如果认证失败,Samba将使用用户级安全模comment=path=共 路browseable=writable=available=adminusers=validusers=允许该共享的用invalidusers=writelist=public=IP,问,需要注意和selinux设置,可以使用如下命令关闭:/etc/init.d/iptablesstop – ‘/SELINUX/s/enforcing/disabled4NFSSun1984个别的数据,让应用程序在客户端通过网络位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的法。MFS、TFS、HDFSYuminstallnfs*portmap-y 在配置文件中添加如上一行,然后重启PortmapNFS服务即可,/etc/init.d/portmaprestart;/etc/init.d/nfsrestart Mounttnfs0:/data//mnt问题有rpc服务没有启动、没关闭、selinux未关闭等问题(拓展*有的童鞋可以研究5FTPFTPFTPTCP生成一个虚拟连接用于控制信息,然后再生成一个单独的TCP连接用于数据传输。FTPVSFTPD安装及使用。安装命令:yuminstallvsftpd*-y#vsftpdconfig2014bywugk //用户 //允许本地用户登录FTP //设置本地用户的文件生成掩码为022,默认是077dirmessage_enable=YES//激活 信息,当用户更改 //启用上传和日志功能 FTPxferlog_std_format=YESftpdxferloglisten=YES//使vsftpd处于独立启动端口模式pam_service_name=vsftpdPAM //使用tcp_wrqppers作为主机控制方第法就是使用系统用户登录FTP,但是也是比较的,先测试系统用户登录FTP,Linuxuseraddtestxp开我的电脑资源里面0,输入用户名和即可,进行创FTPyuminstallpam*db4*--skip-brokenvsftpdvi/etc/vsftpd/ftpusers.txt第一行为FTP虚拟用户,登录用户名,第二行为,第三行为用户名,依次类推db_load-T-thash-f/etc/vsftpd/ftpusers.txt/etc/vsftpd/vsftpd_login.dbod700/etc/vsftpd/vsftpd_login.db(libRedHat,加入的语句不一样,需注意) vsftpd所有的FTP虚拟用户需要使用一个系统用户这个系统用户不需要也不需要登录。useradd–d/home/ftpuser–s/sbin/nologin户共同使用 上传,如果想使用自己独立 ,可以 vi/etc/vsftpd/vsftpd_user_conf/wugk,内容如下,建立自己的 来搭建FTP服务器端,有的童鞋可以研究一下FTP主动模式:客户端从一个任意的非端口N(N>1024)连接到FTP服务器的port21命令端口。然后客户端开始端口N+1,并发送FTP命令“portN+1”到FTP服务器。(N+1>1024,N+1P6ApacheWEBPrefork:PreforkMPM使用多个子进程,每个子进程只有一个线程。每个进程在大多数平台上,PreforkMPMWorkerMPMpreforkworkerWorker:WorkerMPM使用多个子进程,每个子进程有多个线程。每个线程在某WorkerMPMPreforkMPMWorkerMPM也由不完善的地方,如果一个线程,整个进程就会连同其所有线程一目 /apache/httpd/httpd-2.2.27.tar.gzapacheaprapr-util。然后启动apache服务 /usr/local/apache2/bin/apachectlapache Apache基于虚拟主机配vi/usr/local/apache2/conf/extra/httpd-vhosts.confNameVirtualHost<VirtualHost*:80>Root"/data/webapps/www1"<Directory"/data/webapps/www1">AllowOverrideAllOptions-IndexesFollowSymLinksOrderallow,denyAllowfrom CustomLoglogs/access_logcommon<VirtualHost*:80>Root"/data/webapps/www2"<Directory"/data/webapps/www2">AllowOverrideAllOptions-IndexesFollowSymLinksOrderallow,denyAllowfrom CustomLoglogs/access_logcommonIncludeconf/extra/httpd-Apache基于IP虚拟主机同样跟一直,在服务器配置多个IP,然后把改成ApacheRewriteRewriteURL重定向就是实现URL的跳转和隐藏址,可以把复杂的URL变成简洁URLseo把所有配置的都跳转到一个RewriteEngine RewriteCond%{HTTP_HOST}匹配 开头 RewriteRule^/(.*)$/$1RFURL,403HTTPGURLGONE410HTTPP强制使用转发LNC7MySQL有成本而选择了MySQL作为数据库。已被orcacle收购,不过好消息是原来mysql创始人已独立出来自己重新开发了一个MariaDB,MariaDBmysqlSELECT,MyISAMInnoDBYum安装方法很简单,执行命令如下即可:yuminstallymysql-servermysql-develmysqlMySQLmysql-5.1.63.tar.gz;cdmysql-5.1.63;./configureenable-assembler&&make&&makeMysqlcp cp/usr/local/mysql/share/mysql/mysql.server/etc/rc.d/init.d/mysqldchkconfig--addmysqldchkconfig--level345mysqldcd/usr/local/mysqluseraddmysqlchown- mysql.mysql/usr/local/mysql/bin/mysql_install_db--user=mysqlchown-Rmysql /usr/local/mysql/bin/mysqld_safe--user=mysql&MySQLcreatedatabasetest_db;test_dbusetest_db;test_dbshowtables;查看数据库里有多少createtabletest01idvarchar(20),namevarchar(20));test01insertintotest01values("001","wugk1");select*fromtest01;test01grantallprivilegesontest_db.* test@localhostidentifiedby'123456'; test@localhostidentifiedby'123456'; select,insert,update,deleteon*.*totest@”%”identifiedby‘123456’;给mysql数据库。 mysqldump–uroot–p123456 test_db>/tmp/test.db.sql ;MySQL备份或导出mysql–uroot–p123456test_db </tmp/test.db.sql ;MySQL导入mysqladmin–uroot–p123456password ;修改MySQLrootdropdatabasetest_db;删除数据库droptabletest01;deletefromtest01showvariableslikechar%'; [mysqldcharacter-set-server=utf8[mysql]default-character-set=utf8MySQL8LAMP架构搭Linux+Apache+Mysql/MariaDB+Perl/PHP/Python一组常用来搭建站或者服务器WebLAMPJ2EE.Netyumyuminstallhttpdhttpd-develmysql-servermysql-develphpphp-develphp-mysql–yLAMPLAMPyuminstallapr-develapr-util-devel /apache/httpd/httpd-2.2.27.tar.gz;tarxzfhttpd-2.2.27.tar.gz;cdhttpd-2.2.27;./configureenable-so--enable-rewrite&&make&&makeLAMPmysql-5.1.63.tar.gz;cdmysql-5.1.63 --enable-assembler&&make&&makeMysqlcp cp/usr/local/mysql/share/mysql/mysql.server/etc/rc.d/init.d/mysqldchkconfig--addmysqldchkconfig--level345mysqldcd/usr/local/mysqluseraddmysqlchown- mysql.mysql/usr/local/mysql/bin/mysql_install_db--user=mysqlchown-Rmysql /usr/local/mysql/bin/mysqld_safe--user=mysqlLAMPcd/usr/src;wgethttp: /php/php-5.3.28.tar.bz2;tarjxf php- --with-apxs2=/usr/local/apache/bin/apxs--with-Apache+PHP整合apache+php环境,修改httpd.conf配置文件,然后加入如下语句: php5_modulemodules/libphp5.so(默认已存在) application/x-httpd-php.php index.phpindex.html(把index.php加入index.html之前) cat>>/usr/local/apache/htdocs/index.phpDISCUZdiscuz /usr/src discuz:unzipDiscuz_X3.1_SC_UTF8.zipd重命名程序文件:cd/usr/local/apache/htdocs/;mvupload/*赋予discuz 完全权限:cd/usr/local/apache/htdocs/;od777-Rdata/uc_server/config/uc_/然后IP安装discuz,如下图,选择“我同意进入如下界面,数据库安装,如果不存在则需要新建数据库并数据库创建及命令如下createdatabasediscuzgrantallondiscuz.*toroot@'localhost'identifiedby点击下一步,直至安装完成,进入等待已久的画面自此LAMP环境整合并搭建成功,通过IP直接即可9Cacti平台搭作为一名LinuxSA,日常最重要的就是保证正常稳定的运行,我们需要实时此,snmprrdtoolcactiSnmp关系着数据的收集,rrdtool关系着数据和图表的生成。snmp抓到数据不是 rra官网cacti相关软件,一共需要三个软件,地址分别如下yuminstall p-jsonphp-pdo 安装rrdtool工yuminstallcairo-devellibxml2-develpangopango-develtarxzfrrdtool- ;cdrrdtool- ;./configure-- &&makeinstall;ln-s/usr/local/rrdtool/bin/*yuminstallnet- cactitarxzfcacti-0.8.8a.tar.gz&& cactimysql-uroot–p输入你的进入数据库,然后创建数据库createdatabasecactigrantalloncacti.*tocacti@'localhost'identifiedby"123456";创建用户并flushprivileges;刷新权限mysql- cacti配置完mysql后,我们需要设置cacti od-R od- 777cactivi/var/www/html/cacti/include/config.php ****/usr/bin/php/var/www/html/cacti/poller.php>>/tmp/cacti_rrdtool.log2>&1通过出现如下界面,点击NEXT下一步进入登录界面,第一次需要修改Cacti点击localhost可以看到具体的设置,包括采用的snmp协议版本,的名称等每5分钟的图像cacti,状态,交换机路由器等网络设置等。在系统或服务状态异常时发出邮件或,第一时间通知运维人员,在状态恢复后发出正常的邮件或通知示;nagios主要服务,邮件及灯,当然也有简单的流量界面,二者综合(Nagios)Nagios服务器端发来的请求,另一端在主机上指定的相关的信息安装方法:官网nagios相应版本和插件:/usr/sbin/useraddtarzxvfnagios-3.2.1.tar.gzcdnagios-3.2.1./configure--prefix=/usr/local/nagios makeallmakeinstall//来安装主程序,CGIHTMLmakeinstall-init/etc/rc.d/init.dmakeinstall-config//来安装示例配置文件,安装的路径是/usr/local/nagios/etc mandmode//来配置 makeinstall-webconfnagiosapachetarzxvfnagios-plugins-1.4.14.tar.gzcdnagios-plugins-1.4.14 make&&makeinstallnagios控制设 /usr/local/nagios/etc/htpasswd.users输入两次即可,登录页面的时候会用到这个Nagiosnagios,/etc/init.d/nagiosrestart;/etc/init.d/httpdrestart点击左侧的Hosts可以看到右侧默认localhost主机的,UP表示主机目前运行正常 各种的功能如下NagiosNagiosNagiosCGI文件所 NagiosNagioslockNagios、这里先来了解 主要包括主机的配置、模板时间段等配置文件、简单来添加一个客户端的步骤cp -s#linux-servers#0#g'0.cfg - 最后执行:/usr/local/nagios/bin/nagiosv/usr/local/nagios/etc/nagios.cfgprocess、user、cpu等配置段:define SwapUsage }这里注意*如果没有配置check_nrpe,默认不能客户端例如swap、disk、CPU、process如下是刚刚添加的默认的客户端图Nagiosnagios-plugins-1.4.15.tar.gz和useraddnagios;tar-xzfnagios-plugins-1.4.15.tar.gz&&cdnagios-plugins-1.4.15&&./configure–prefix=/usr/local/nagios&&make&&maketar-xzfnrpe-2.13.tar.gz&&cdnrpe-2.13&&./configure--enable-chown-Rnagios:nagios/usr/local/nagios/;cd..;cpnrpe:/usr/local/nagios/bin/nrpe/usr/local/nagios/etc/nrpe.cfgviusr/local/nagios/etc/nrpe.cfgcommand[check_users]=/usr/local/nagios/libexec/check_users-w5-c10command[checkload]=/usr/local/nagios/libexec/checkload-w15,10,5-command[checkdisk]=/usr/local/nagios/libexec/checkdisk-w20-c10-command[check_procs]=/usr/local/nagios/libexec/check_procs-w50-ccommand[check_swap]=/usr/local/nagios/libexec/check_swap-w20-cdefinecommand_namecommand_line$USER1$/check_nrpe-H$HOSTADDRESS$-c}Nagios端客户机配在0.cfg加入如下配置段,客户端nrpe.cfg里面配置的check_load命 define Current }端。Nagios端HTTP这里可以使用默认命令check_http命令+相关的参数来实现,如下主机名,-u指定URL,-p指定端口,-s指定。define $USER1$/check_http-I$HOSTADDRESS$-u$$ARG1$-$$ARG2$-s}然后在服务器端主机的配置文件里面即可,的方法如下端口web服务可以,依然会发送/usr/local/nagios/libexec/check_http-I1-u/index.html-p82-s如上截图表示,ATM不存在,则nagios在页面上会显示CRITICAL紧急那我们要发怎么办呢,我们可以139邮箱,机制是nagios给139邮箱发送信息,然后信息会自动发到我们绑定的。提前在139上绑定好即可。除此之外还可以使用猫()设备来发送。 还需要在nagios服务器端配置文件修改邮件收件人如下:修改配置文件:vi/usr/local/nagios/etc/objects/contacts.cfg同样也可以使用sed命令修改:cd /usr/local/nagios/etc/objects/;sed-i 发来的邮件自此,Nagios相关的配置就到此为止,当然有的童鞋还可以进一步研究,例随着公司业务不断增加,经常需要采购新服务器,并要求安装Linux系统,并且要求或者到新的服务器呢。Kickstart可以毫不费力的完成这项工作。IPTFTP(trivialfiletransferprotocol)协议一个启动软件包到本机内存中执行。kickstart:Kickstart+DHCP+NFS+TFTP+PXE,从dhcp、tftp、nfs、kickstart/pxe tftpvi/etc/xinetd.d/tftpservicetftp{disable=nosocket_type=dgramprotocol=udpwait=yesuser=server=/usr/sbin/in.tftpdserver_args=-unobody-s/tftpbootper_source=11cps=1002flags=}disable=yesdisable=no要实现安装系统,首先需要在TFTPBOOT /mnt#如果系统是5.x,默认 已经自动创建到/ #如果系统是6.x,默认tftpboot 在/var/lib/下,所以centos6.x需要做软 cp/usr/lib/syslinux/pxelinux.0 defaultlinuxprompt1timeout10disyboot.msgF1boot.msgF2options.msgF3general.msgF4param.msgF5rescue.msglabelcentos5.8kernelvmlinuz labeltextkernelvmlinuzappendinitrd=initrd.imgtextlabelkskernelappendkslabellocallocalboot1labelmemtest86kernelmemtestappend–eth0 --level35 && NFS+KICKSTART nohup - /centosinstallecho *(rw,sync)”在NFS配置文件/etc/exports中加入如上语句:/centosinstall anaconda-ks.cfgks.cfg,ks.cfg 下,赋权限为od777如下我这里采用配置文件内容如下:vi#Kickstartfileautomaticallygeneratedbyanaconda.nfs--server=9--dir=/centosinstallkey--skip .UTF-keyboardnetwork--deviceeth0--bootproto=dhcp--noipv6rootpw123456firewall--authconfig--enableshadow--enablemd5selinux--disabledtimezonebootloader--location=mbr--driveorder=sda--append="rhgbquiet"clearpart--all--initlabelpart/boot--fstypeext3--size=200partswap--size=4000part/--fstypeext3--part/data--fstypeext3--size=1--@development-@-support第一步install,以text字符界面,指定nfs共享IP和 。后写入客户机系统需要安装的软件包,可以自己定制详细的参数在此就不做过多的说。kickstart2TkickstartMBRGPTparted-s mklabel自动执行定制的,需要在ks.cfg末尾加入如下配置: nfs9:/centos/init/mnt /mnt/;/bin/sh Pxe+kickstart自动安装系统,需要用到DHCP分配的客户端的IP地址,这里直接上dhcpd.confddns-update-styleinterim;ignore-updates;next-server9;filename"pxelinux.0";allowbooting;allowsubnetnetmask{#defaultgatewayoption optionsubnet- rangedynamic-bootp0000;hostns{hardwareethernet fixed-address01;}}最后重启所有服务,并关闭iptables和selinux,然后找一台新服务器,接入网线与kickstartIP servicenfsrestart dhcpdrestartLinuxLinuxS编4.1.1S编程简s是操作系统的最外层。s合并编程语言以控制进程和文件,以及启动和控制S编程去运行。随着Linux企业应用越来越多,Linux日常工作频繁,所以如/bin/sh(/bin/bashRoot(/sbin/sh)等。不同的S语言的语法有所不同,所以不能交换使用最常用的s是Bash,也就是BourneAgainS,由于易用和免费,Bash在日常工作中被广泛使用也是大多数Linux系统默认的S接下来我们来写一个简单的s 一般文件名以.sh结尾,同时文件第一行定义该为s #ThisismyFirstsecho“oWorld!”这就是我们的第一个,是不是很简单呢,注解如下#!/bin/bash//表示定义该是一个 (固定格式#ThisismyFirsts//这里的#号属于注解,没有任何的意义,S不会解析它echo“ World!” 编写完毕,如何来执行呢,首先执行 odo+xfirst_s.sh然后./first_s.sh执行即可;也可以直接使用命令执行/bin/shfirst_s.sh,显示效果一样2S变量设S给一个变量赋值,实际上就是定义了变量,在Linux支持的所有s中,都可以用赋S变量可分为两类:局部变量和环境变量。局部变量只在创建它们的s中是用户创建的,其他的则是s变量。例如在里面定义A=123,定义这样一个变量,前面变量名,后面是变量的值#Authorwugk2014-06-10echo“Printfvariablesequalis$A” Printfvariablesequalis123例如定义变量name=wuguangkeecho$namewuguangkeS常见的系统变量解析:$0$nn$*$#$?0$UID$PWD3S流程控制语在LinuxS编程中,if、for、while、case等条件流程控制语句用的非常多,把这些学好, #if(VariableinArrayif(($NUM>4))echo“thisnumis$NUMgreater4案例二,测 是否存在,不存在则新建(注意,中括号之间必须要空格#judgedir mkdir-p/data/echo“ThisDIRisexist,Pleaseexit-f判断文件是否存在eg:ifffilename-d判 是否存在eg:if[-d - - - - - - -a(and)a-o(or)–o-z [[$scores-gt85]];thenecho"verygood!";elif[[$scores-gt75]];thenecho"good!";elif[[$scores-gt60]];thenecho"pass!";echo"noForin `seq15`echo“NUMis$i” `find/var/log-name“*.log”`tar–czf 2014log.tgz$iwhilewhilewhile[[$i-lt10]];doecho$i;案例二,while逐行某个文whilereadline <untiluntil[[$a-lt0]];doecho$a;case$argcase$1 echo"Usage:{$0monitor_log|archive_log|helpPS3="Whatyoulikemostoftheopensourcesystem?"selectiinCentOSRedHatUbuntuecho"YourSelectSystem:4.1.4S案test.txt cp拷贝test.txt到/tmp 录abc,并且删除原/root/下test.txt。,#ThisisFirstsforautocpFiles $DIR;mkdir–pabc echo“TheSScriptsexecsuccessfully!”“自动CP并删除文件”的编写完毕,保存退出即可。Mysql#autobackupmysql #DefinePATHBAKDIR=/data/backup/mysql/`dateY-%m-%d`#mustuserootuserrunscriptsroot$UID[$UID-ne0echoThisscriptmustusetherootuser!!!sleep2exit#DefineDIRandmkdirDIR判 是否存在,不存在则新[!-d$BAKDIR];thenmkdir-p$BAKDIRechoThisis$BAKDIR#Usemysqldumpbackupmysqlmysqldump/usr/bin/mysqldump-u$MYSQLUSR-p$MYSQLPW-d$MYSQLDB>$BAKDIR/webapp_db.sqlecho"Themysqlbackupsuccessfully"自动打包 下log文#autotarczfstoFiles#Authorwugk2014-05-15DES_DIR=/opt/backup/`date+%Y%m%d`[!–d $DES_DIR];thenMkdir–p$DES_DIR $SRC_DIR-name“*.log”` echo“Thescriptsexecend,Filestarsuccessfully自动IP#autodropsshfailedIPaddress#wugk2013-1-2#如下为截取secure文件ip登录22端口,大于等于4次就写入,禁22IP_ADDR=`tail-n1000/var/log/secure|grep"Failedpassword"|-o"([0-9]{1,3}\.){3}[0-9]{1,3}"|sort-nr|uniq-c|awk'$1>=4cat etousesshlogindropfailed echon5for((j=0;j<=4;j++));doecho-n"";sleep1;doneforiin`echo$IP_ADDR`cat$IPTABLE_CONF|grep$i[$?-ne0sed-i"/lo/a-AINPUT-s$i-mstate--stateNEW-mtcp-ptcp--22-jDROP" "Thisis$iisexistiniptables,please /etc/init.d/iptables4.1.5S数组编今天这里我们来探讨一维数组的定义统计和删除等操作首先来定义一个一维数组A=(test1 如何来呢? ${A[0]},代表第一个数组变量,结果会显示test1,数组从0开始,代表 ${A[1]},代表第二个数组变量,结果会显示test2,数组也是从0开始计 ${A[@]}将显示所有参数test1test2test3。 ${#A[@]}将显示该数组的参数个数3。如果替换某个数组呢?例如替换第二个test2数组为 test3:unsetA[2];echo${A[@]#AutoMakeKVMVirtualization#AutoconfigbondscriptsHWADDR=`ifconfigeth0|egrep"HWaddr|Bcast"|tr"\n"""|awk$5,$7,$NF}'|sed-e's/addr://g'-e's/Mask://g'|awk'{printIPADDR=`ifconfigeth0|egrep"HWaddr|Bcast"|tr"\n"""|awk$5,$7,$NF}'|sed-e's/addr://g'-e's/Mask://g'|awk'{printNETMASK=`ifconfigeth0|egrep"HWaddr|Bcast"|tr"\n"""|awk$5,$7,$NF}'|sed-e's/addr://g'-e's/Mask://g'|awk'{print$3}'`GATEWAY=`route-n|grep"UG"|awk'{print$2}'`)cat>ifcfg-bond0<<EOF51NginxWEB作为邮件服务器。它已经在众多流量很大的俄罗斯上使用了很长时间,这些nginxweblocationblock(locationNginxURLlocation高并发响应性能非常好,Nginx处理静态文件并发1NginxWEB ***[/usr/local/pcre/Makefile]Error127错误yuminstallpcre-develpcrey#Nginx源码包cd/usr/src;wgetcNginxtar-xzfnginx-#进入解 ,然后sed修改Nginx版本信息为cdnginx-1.4.2;sed-i-e's/1.4.2//g'-e's/nginx\//WS/g'-e's/"NGINX"/"WS"/g'src/core/nginx.hhttp_stub_status_module--with-http_ssl_module#makemakeinstallmake/usr/local/nginx/sbin/nginx-tnginxOK[root@localhost~]#/usr/local/nginx/sbin/nginx-nginx:theconfigurationfile/usr/local/nginx/conf/nginx.confsyntaxisoknginx:configurationfile/usr/local/nginx/conf/nginx.conftestissuccessful[root@localhostnginx,/usr/local/nginx/sbin/nginx[root@localhost~]#ps-ef|grep 5381302850May16 00:04:31nginx:worker 2014 00:00:00nginx:master 3226032220012:34pts/0 00:00:00grepnginx[root@localhost~]#2NginxIPvinginx.confserver#virtualhostsconfig2014/5/18server{ location/ index.html}server location/ index.html}创建两个不同 mkdir–p/usr/local/nginx/html/{a,b},然后分别在两IE浏览器测试效果3NginxNginxNginx.confworker_processes;cpu。worker_rlimit_nofilenginx开文件数(ulimitn)nginxnginxulimitnusepoll,它能显著提高程序在大量并发连接中量活跃的情况下的系统CPU利用worker_connectionskeepalive_timeout60;继请求时,keepalive-timeout_header_buffer_sizegetconfPAGESIZEopen_file_cachemax=102400文件数一致,inactiveopen_file_cache_valid30s;open_file_cache_min_usesnet.ipv4.tcp_max_tw_buckets=10000timewait180000。net.ipv4.ip_local_port_range102465000net.ipv4.tcp_tw_recycle=1timewaitnet.ipv4.tcp_tw_reuse=TIME-WAITsocketsTCPnet.ipv4.tcp_syns=开启SYNs,当出现SYN等待队列溢出时,启用s来处理4NginxNginxupstream5轮询(Weight指定轮询权重,权重越高,处理的请求就越多,weight和比率成正比,用于后端sessionfair(第upstreamfail_timeoutmax_failsupstream在fail_timeout的时间内,nignx与upstream中某个server的连接尝试失败了nginxserver。upstreamtdt_app 1:8080weight=1max_fails=2 2:8080weight=1max_fails=2}2Nginxserver30s,nginxserver。另外,fail_timeout设置的时间对响应时间没影响,这个响应时间是用_connect_timeout:Nginx 5NginxRewritelast:相当于Apache(L)标记,表示完成例如用户访 ,想直接跳转到下面的某个页面NginxRewrite来实现这个需求,具体如下:server中加入如下语句即可: /index.html*代表前面0或个字+代表前面1或个字01例如多个跳转到同一个,nginxrewrite规则写法如下{listen if($host!= ’)rewrite^/(.*)$ /$1}52Rsync性,第一次同步时rsync会全部内容,但在下一次只传输修改过的文件。1RsyncRsync正式安装,官网rsync稳定版本,然后进行安装编译 /usr/src;wget &&cdrsync-3.0.7&&./configure-- &&make&&makeinstall #########[global]uid=nobodygid=nobodyusechroot=nomaxconnections=pidfile=/var/run/rsyncd.pidlockfile=/var/run/rsyncd.locklogfile=/var/log/rsyncd.logtransferlogging=yeslogformat=%t%a%m%f%bsyslogfacility=local3timeout=300readonly=path=/usr/local/webappscomment=wwwauthuserssecretsfile=hostsallow=readonly=path=/data/www/webcomment=webauthuserssecretsfile=hostsallow= path= comment=www readonly=no #no客户端可上传文件,yes只读writeonly=no #no客户端可文件,yes不能list=yes authusers #登陆系统使用的用户名,没有默认为hostsallow= hostsdeny= #主机IPsecretsfile=/etc/rsync.pas #文件存放的位置启动服务器端RSYNC主进程,/usr/local/rsync/bin/rsync-- 端口rsync username:userpasswd(表示用户名:)保存完毕,od600/etc/rsync.pas设置权限为宿主用户读写 输入服务器端配置的 - - 注*/usr/local/webapps为客户端 Rsync-a,从FILE中排除规-等价于––partial-v,-q,指定服务器上的rsync命令所在路从FILE中口令,以避免在终端上输令cronrsync2RsyncSSHssh - /data/www/webapps,如果想每次同步不输入,需要做Linux主机之间免登录3Rsyncrsync+inotifyInotify是一个Linux特性,它文件系统操作,比如、写入和创建Inotify反应灵敏,用法非常简单,并且比cron inotify-tools-3.14.tar.gz;./configure ;makeinstall即可。配置auto_inotify.sh同步,内容如下inotifywait-mrq--timefmt'%d/%m/%y-%H:%M'--format'%T%w%f'-emodify,delete,create,attrib${src}|whilereadfile in $srcroot@$ip:$des在服务器端启动该,nohupshauto_inotify.sh&,在服务器端新建53Tomcat/ResinJAVATomcat主要用来解析JSP语言。目前版本为8.0。1Tomcattomcatjdk(JavaDevelopmentKit)Java(SDK)sh./jdk-6u18-linux-x64-rpm.bin,回车即可,默认安装到/usr/java/jdk1.6.0_18java,vi/etc/profileexportexportCLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/libexportPATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOMR/binsource/etc/profile//使环境变量立刻生效。 - 在官网tomcat相应版本,这里的版本为apache-tomcat-6.0.30.tar.gz,完 tomcat,命令为查看ps-ef|greptomcat进程及端口是否存在,通过页面可以看到tomcat默认测 这个画面是默认怎么来创建一个自己的页面呢定义自己的发布 在server.xml配置文件末尾加入如下行(附截图)<Contextpath="/" 在 下,创建自己的jsp代码,重启tomcat即可2Tomcat线上环境使用默认tomcat配置文件,性能很一般,为了满足大量用户的,需要maxThreads:tomcat200acceptCounttomcat100<ConnectorURIEncoding="UTF-8"/>Catalina.shJVM - -- -DUSE_RAM_DISK=ture-配置多个tomcat实例,方法也很简单,只需要在服务器上cp多个tomcat,然后修改三个 为了提升整个的性能,还需要在tomcat前面架设nginxweb反向服务器,用以提3ResinResinCAUCHOapplicationserverservletresinproproprowgethtt tar–xzvf cdresin-4.0.33&&./configure--\--with-resin-log=/data/logs/resin/--with-java-home=/usr/java/jdk1.6.0_18/make&&makeinstall安装完毕后,修改/usr/local/resin/conf/resin.xml配置文件发 ,如图然后启动resin,/usr/local/resin/bin/resin.shstart测试成功如下图(发布resin:5.3.4Resinresin<httpaddress="*"<!--SSLportconfiguration:--<httpaddress="*"<jsse-sslself-signed--5.3.5Resincd/usr/local/resin/conf下,然后cpresin.xmlresin1.xml;cpresin.xmlHTTP8080Resin1.xmlHTTP8081Resin2.xml mkdir-p 如下方法启动两个resin实例:/usr/local/resin/bin/resin.sh-conf/usr/local/resin/conf/resin1.xml-server1/usr/local/resin/bin/resin.sh-conf/usr/local/resin/conf/resin2.xml-server2需要把上述加入/etc/rc.local即可。54NginxTomcatNginx,Tomcat、ResinlocationExpires,服务器重新,返回状态码200。nginx.confservernginx.conf{ indexindex.htmlindex.htm; rootlocation{_next_upstreamhttp_502http_504errortimeoutinvalid_header;_set_headerHost$host;_set_headerX-Real-IP_set_headerX-Forwarded-For$_add_x_forwarded_for;_pass; }#动态页面交给,也即我们之前在nginx.conf定义的upstreamtdt_wugk均location~{_set_headerHost$host;_set_headerX-Real-IP$remote_addr;_set_headerX-Forwarded-For$_add_x_forwarded_for;_pass;}#配置Nginx动静分离,定义的静态页面直接从Nginx发 location~{root }#定义Nginxaccess_log/data/logs/nginx_wugk/access.logmain; /data/logs/nginx_wugk/error.log}真实环境程序包只有一个,需要把这个程序包在nginx前端放一份,同时需要在5LNAMP很好的LNMP(Linux+Nginx+Mysql+PHP)架构,那我们说LNAMP到底有什么优点呢,还得从NginxapacheNginx,Apache502Nginx+PHP(FastCGI)组合不稳定的原因造成的。LNAMP prce- ;cdnginx-1.6.0;./configure–prefix=/usr/local/nginx&&make&&makeLNAMPinstallapr-develapr-util-devel; /apache/httpd/httpd-2.2.27.tar.gz;tarxzfhttpd-2.2.27.tar.gz;cdhttpd-

温馨提示

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

评论

0/150

提交评论