Linux基础整理 + 注释

1、Linux的常用命令:
	ls 		显示当前文件夹目录 ll -->详细信息 ls -a 显示所有文件 ls -lhSr
	w		查看登录的帐号,还可以查看cpu负载情况,who am i ,who 看的信息少些
	last		查看过去用户登录信息,lastlog //用户最后登录的日期
	cd		切换目录 cd - -->返回上一目录 cd ~ -->用户文件夹  cd / -->更目录
			cd .. 上一层目录  dirname ~baidu--> /home basename ~baidu--> baidu
	pwd		显示当前目录
	shutdown -h 10 	(Root下)10分钟后关闭系统
	halt		通用立即关闭系统
	useradd bbc	添加用户	passwd abc 更改用户密码
	clear/Ctrl+L	清屏,把命令行清屏,相当于Windows的CLS命令
	dhclient		获取上网地址	ifconfig 查看网络参数
	Ctrl+Alt+F2	切换到全命令模式,即CLI命令行
	Ctrl+Alt+F1	跳回GUI界面
	tab		自动补全

	vi index.html	编辑指定文本文件	Esc+ :wq 保存退出
	mv 1.html 2.htm 	移动文件,相当重命名
	unalias cp			解除cp覆盖文件提示确认
	cp -r file1 dir1 dir2	将文件file1和目录dir1复制到dir2
	echo		把内容写入文件,echo "Hello World">>index.html
				echo -n "please input a value:" #不换行
	mkdir		新建文件夹 mkdir -p admin/model ,递归创建文件夹
	rmdir		删除文件夹 rmdir -p admin/model ,递归删除空文件夹
	rm		删除文件  rm -rf admin -->递归删除文件

	data		显示日期,示例:data "+%Y-%m-%d %H:%I:%S"
	cal		显示当前日历,含星期的日历 cal 1-28 2016
	cat		显示里面的内容 示例:cat index.html
	touch		修改属性 touch -t 0902211033 qq 修改qq文件夹的最后修改时间
	more		cal 2017 |more 分屏显示数据,回车/空格控制显示
			more index.html 分页看文件q退出
			less index.html 查看文件,可以查找,/ 搜索 n 向下 N向下 q退出
			tail -5 index.html 显示后5行	head -3 index.html 显示前三行
	find		find / -user qq 查找用户的文件 find / -name qq 查找qq文件名
			find / -size +6000k
			find / -name index.html -exec rm -rf {} \; 查找文件并执行命令
			find / -nouser -exec rm -ri {} \; //删除没有用户的文件和文件夹
			find /var/www/html -type d -exec chmod 0755 {} \;//目录更改权限
			find /www/html ! -type -d -exec chmod 640 {} \;//修改文件权限
	which		which passwd  查找passwd位置   whereis ls 查看命令位置
			updatedb 更新数据库
	locate		locate index.html 查看普通文件
	du		查看目录大小, du -sh
	netstat		netstat -tnulp  //查看tcp监听端口,数字显示,并且显示PID
	grep		grep -vxFf a.log b.log >diff.log //比较两个日志的不同

2、Linux的目录结构:
	bin		常用命令
	sbin		超级管理员命令,shutdown -h now等
	boot		启动方式
	dev		设备文件
	etc		配置文件夹
	home		用户目录,不含Root
	usr		字体,帮助文档,相当windows目录
	lib		共享函数库
	mnt		默认挂载区

3、Shell简单使用:
	shell 		用户与内核沟通的中间人
	GUI		图形化SHELL
	CLI		命令行SHELL

4、简单的SSH登录设置命令-远程登录:
	vi /etc/selinux/config -->修改 SELINUXTYPE=disabled  //跳过安全检查

	vim /etc/sysconfig/network-scripts/ifcfg-eth0	//固定IP
	修改添加如下:
	ONBOOT=yes
	BOOTPROTO=static
	NETMASK=255.255.255.0
	IPADDR=192.168.0.115
	GATEWAY=192.168.0.1
	DNS1=8.8.8.8

	用SSH登录Linux,工具如PuTty:192.168.0.115:22
	使用SSH远程复制:把本地文件复制到远程主机
	Linux下:ssh 192.168,0.116
	本地文件:scp index.html root@192.168.0.115:/tmp
	useradd -s /sbin/nologin tom  //添加用户,不能登录ssh
	usermod -s /sbin/nologin doobo //修改用户不能ssh登录

5、权限(帐号、角色-组、其它人):
	-rw-rw-r--		rw-所有者	rw- 所属组 r-其他人---664
	umask -S		显示默认权限
	r w s		4 2 1  读-4 写-2 执行-1
	chmod		修改权限 chmod 777 b.sh  chmod o-w b.sh 文件的其它用户除去写权限

	rwx--目录		w-新建-改名-删 x-进去 r-读文件列表 rx一般一块用
	注意:对文件的删、更名等权限属于该文件的所在目录的权限,与该文件权限无关

	chown		修改文件的所有者 chown root index.html
			或者 chown root:root index.html  //修改所有者和用户组
			chown -R root:root admin  //修改admin内所有文件和文件夹的所属用户
	/etc/shadow	用户密码文件 15855:0:9999:7::: 注册时间,多少天才能修改密码,多
			少天必须修改密码,提前几天通知,后面宽限多少天,帐号失效时间
	chgrp		chgrp hd www 更改文件用户组 groupadd hd 创建组 groupdel hd 删除组
	usermod		修改用户信息 usermod -G hd doobo 给doobo添加附加组
				   usermod -G '' doobo 删除doobo的附加组
			usermod -L doobo 锁定用户 usermod -U doobo 解锁用户
			passwd -l doobo 锁定用户  passwd -u doobo  解锁用户
	userdel		删除用户 userdel doobo --》userdel -r doobo删除doobo和它的home目录
	chage		修改用户的属性,chage -m 3 doobo //多长时间才能修改密码
			chage -M 10 doobo 多长时间必须修改密码
			chage -W 2 doobo 密码到期前多长时间提醒我
			chage -I 5 doobo 密码到期后宽限5天
			chage -E 2018-2-20 doobo 帐号密码什么时候失效 0 立刻失效 -1 不失效
	SUID设置		chmod 4755 /usr/biin/passwd  chmod 2755 indexdir //给目录设置sgid
			chmod 1777 indexdir //只能删除自己建立的文件 设置sbit
	acl		setfacl -m u:u2:rwx acldir //给u2添加特殊权限
			setfacl -m g:hd:rwx acldir  //给组添加特殊权限
			setfacl -m m:r acldir  //给目录的mask添加读权限,相交其它权限
			getfacl acldir//获取acldir目录的acl列表 ,只支持ext2到ext4格式磁盘
	sudo		/etc/sudoers  //visudo 进行编辑  doobo ALL=(ALL)  ALL 能任何地方,
			替代任何用户,执行所有的命令,相当root帐号,但需要sudo passwd qq
			doobo ALL=(root) /sbin/halt,/sbin/shutdown -h now  //添加指定命令
			但必须使用sudo 加指定的命令执行
			doobo ALL=(root) !/usr/bin/passwd,!/usr/bin/passwd root,
			/usr/bin/passwd [a-zA-Z0-9]*  //给用户修改密码权限,不能修改root
			Cmnd_Alias BAN = /sbin/shutdown -h now,!/usr/bin/passwd,...
			baidu ALL=(root) BAN  //别名批量设置权限
			User_Alias BANUSER = doobo,qq,baidu  //用户分组设置权限
			%hd  ALL=(root) BAN  //给hd组添加权限
	pkill		pkill -kill -t pts/1 //踢出用户,通过w获取pts/1的值
	write		write doobo pts/0 --》hello --》Ctrl+D //给用户发送消息
	wall		wall "system will shutdown!"  //广播发送消息



6、环境变量,不在当前目录寻找
	echo $PATH			输出环境变量
	PATH=$PATH:/home/baidu	添加环境变量
	./a.sh			执行当前文件夹内的脚本,必须加./
	whereis ls			查看ls的所属文件
	//软连接-快捷方式:
	ln -s /user/local/baidu/baidu.sh /usr/bin/baidu


7、Linux磁盘分区:
	sync	同步内存数据到磁盘
	df	分区 df -h
	fdisk	显示磁盘 fdisk -l
		fdisk /dev/sdb //选择磁盘分区
		n //新增分区
		1 p //主分区 +5G //设置分区大小
		t //修改分区结构  L//显示分区格式代码
	mkfs	格式化 mkfs -t ext4 /dev/sdb1
	mount	挂载 mkdir /mnt/sdb1 mount /dev/sdb1 /mnt/sdb1
		卷标挂载 e2label /dev/sdb1 web //起卷标
		         mount -L "web" /www	//用卷标挂载
		mount /dev/cdrom /media	//挂载光驱
	umount	弹出 umount /dev/sdb1
	lsof	查看占用     lsof /mnt/sdb1
	fatab	自动挂载,vim /etc/fstab 添加行:/dev/sdb1 /www ext4 defaults 0 0
		卷标自动挂载:LABEL=www /www ext4 defaults 0 2
		模拟挂载	    mount -a //出错会提示

8、忘记root密码的解决方案和fstab文件查错
	重启或启动---》》按...--》》按e--》选择kernel --》按e--》》输入single回车--》按b
	mount -n -o remount,rw /	//重新挂载根分区,可读可写
	会进入单用户模式,使用passwd root 既可以修改root密码

9、压缩与解压缩,备份etc目录:
	zip passwd.zip passwd  //压缩单个文件 zip -r passwd.zip passwd 递归压缩,压缩文件夹
	unzip passwd.zip	  //解压缩
	gzip	passwd	  //压缩文件   gzip -r etc	递归压缩文件
	gzip -d	passwd.gz	  //解压缩
	bzip2	passwd	  //压缩文件,不能递归压缩,自动删除源文件
	bzip2 -d  passwd.bz2   //解压缩,自动删除压缩包 -k 保留
	tar 	-j bzip2压缩	-z gzip压缩	-f 设置文件名
		-c 新建打包文件	-v 显示执行过程
		tar zcvf /tmp/root/passwd.tar.gz /tmp/root/passwd 压缩文件
		tar zxvf passwd.tar.gz //解压缩,必须指定类型z或者j
		tar zxvf passwd.tar.gz -C ~qq //解压到用户qq目录下
10、vim的常用方法:
	1、yum install vim 安装vim  Esc 普通模式,命令输入
	2、:set nu		显示行号  :set nonu  :set tabstop=2
	3、i 当前插入  I行首插入 a 下一字符 A 行尾 o  下一行 O 上一行 u 撤销
	   dd 剪切 p或P 粘贴  yy 复制  3yy 复制3行 5dd 剪切3行
	4、:sh	退回命令行,exit继续进入编辑器 :sp b.txt 新开窗口 ctrl+w 上下键 切换编辑区
	5、! 强制执行命令 :q! :wq! :x!
	6、:w  b.txt 另存为
	7、:0 :1 :2546 跳转到行 :/qq 查找qq :/n 向下查找 :?f 向上查找
	8、:1,5s/$f/$a/g  从第一行到第五行执行替换,把$f替换为$a,全局替换
	   :1,5s/$a/$b/gc 	每次提示确定
	9、:r b.txt	把b.txt的数据导入进来
	10、:set autoindent  自动缩进 cd --> vi .vimrc --> set nu set autoindent set tabstop=2

11、软件安装与常用设置:
	wget	wget http://www.memcached.org/files/memcached-1.4.34.tar.gz //下载文件
	tar --> ./configure --prefix=/usr/local/memcached--> make --> make install
						或 make && make install
	ldconfig	//添加动态函数库到内存
	/etc/ld.so.conf //动态函数包含的目录 vi /etc/ld.so.conf
	rpm	//安装特定软件,有数据库记录 rpm -qa  //显示安装的rpm软件
		rpm -ivh mysql_686.rpm //安装rpm包
		rpm -qa | egrep -i '^tree'  //查找以tree开头不屈服大小写的软件名
		rpm -e 软件包名	//删除安装的软件包
	yum	yum install vim	//通过源安装软件
		修改yum的源地址:
		cd /etc/yum.repos.d/ --> rm -rf *
		http://mirrors.163.com/  //从新源下载新配置文件
		wget -O /etc/yum.repos.d/CentOS-Base.repo
			http://mirrors.aliyun.com/repo/Centos-6.repo
		放入/etc/yum.repos.d/目录下
		yum clean all
		yum makecache  //更新源地址
		yum search mysql //搜索软件
		yum erase mysql  //卸载软件
		yum -y update >/tmp/yum.log  & 更新系统,正常和错误的
			信息多输出到文件,并且后台运行


12、任务计划,定时执行:
	yum install at -->service atd start  //d是守护的意思mysqld、atd
	at 12:49  --> touch /tmp/12.49.test --> ctrl+D 退出命令编辑
	at -l	查看已经创建的任务 at -c 2 查看任务详细 at -d 4 删除任务
	ls -ld / >/tmp/ls.txt  //把命令执行成功的结果输出到文件
	vi /etc/at.allow  //配置允许执行at的用户 at.deny  //配置禁止执行at
	crontab	//周期性的任务
		crontab -e  //添加任务
		/etc/crontab  //管理员添加任务
		crontab -l  //查看任务 crontab -r 删除任务
		*/5 * * * *  ls / >>/tmp/ls.log //每五分钟执行一次
		0 * * * *	每小时执行  0 0 * * 0  每周执行  0 0 1 1 *  每年执行
		0 0 * * *  每天执行    0 0 1 * *  每月执行
		32 20 6,10 * *  每月的6号10号的20:32分执行命令
	watch	watch cat /tmp/cron.log  //每两秒执行一下命令

13、进程管理
	进程	运行中的程序
	ps	查看服务 ps aux  或 ps aux |grep atd 或ps -l
	pstree	进程关系树形显示pstree -p //显示进程ID -u 显示用户关系
	jobs	查看后台进程
	top	系统资源占用显示,用户数、内存、CPU、缓存信息等
		shift+m 按内存使用大小排序 shift+p 按CPU排序
		top -n 3 只刷新3次,就停止 top -d 10 10秒刷新一次
		top -b -d 1 >/tmp/top.log //-b能写入文本,-d只跑一次
	kill	kill 1890  //结束进程,不保证绝对杀死
		kill -9 1890 //强制结束进程
	pkill	pkill -9 ls  //按照进程的名字删除
	killall	killall -9 -i ls //按名字删,有确认提示
	uptime	显示系统当前时间的用户数和CPU使用情况
	程序-->载入内存+CPU(进程)-->服务  //临时工和门卫的关系
	错误输出重定向 find / -name \*root\* 2>/dev/null //不显示错误信息
	正确输出重定向 find / -name \*root\* 1>/tmp/find.log

14、linux的启动流程和服务的开机启动和关闭:
	1、开机进入BOIS
	2、选择启动磁盘、搜索MBR,进入系统,init pid 1
	3、加载/etc/rc.sysinit  磁盘检测、网卡等
	4、根据/etc/inittab文件,执行/etc/rc.d/rc*.d对应的文件,
		定义启动级别,图形,命令行界面,K不启动服务
	5、再执行/etc/rc.d/rc.local,出现登录界面,可以添加开机启动命令
	6、chkconfig --list	//查看对应的服务在不同等级开启的情况
	 	chkconfig --level 35 mysqld on  //3和5等级,mysql开启
	7、/etc/init.d/	所有服务所在目录,可以自己添加服务
		对应/etc/rc.d/init.d/ 的文件夹

15、VNC与图形化远程桌面配置:
	系统必须支持图形桌面
	yum install tigervnc-server.i686  //安装vnc
	下载realvnc登录软件,能在不同平台远程登录
	Linux配置VNC服务:
		vi /etc/sysconfig/vncservers
		VNCSERVERS="2:doobo 3:mysql 4:root"
		vncpasswd doobo	//设置doobo的vnc密码,在doobo下设置
		/etc/init.d/vncserver start //启动vnc
		service iptables stop    //关闭防火墙,防止连接失败
		service iptables status  //查看防火墙状态
		ps axf | grep vnc/iptables  //查看进程
	VNC_View  使用192.168.0.116:2登录,不需要填写其它的信息

16、samba服务器的使用
	yum -y install samba
	//开特权,关闭防火墙
	vi /etc/samba/smb.conf
		security = share  -101行
		找到Share Definitions,添加共享信息-250行
		[doobo]
		path=/tmp
		public=yes  //匿名共享设置成功
	testparm /etc/samba/smb.conf	//检测配置文件是否正确
		security = user  -101行
		smbpasswd -a doobo	//给用户设置smb密码
		writable = yes	//赋予写权限
		create mode=0666	//修改分享文件的权限
		directory mode=755	//修改目录的权限
		valid users=doobo,qq //允许指定用户进入
		valid user=@code	//只允许code组的用户进入

17、IpTables的配置与使用(防火墙配置):
	ACCEPT	让数据进来		DROP	丢弃数据包不告知
	REJECT	丢弃并告知
	iptables -P INPUT DROP	//修改默认进来的包丢弃
	iptables -A INPUT -j DROP	//丢弃所有进来的数据包
	iptables -F	//清楚所有过滤规则
	iptables -L -n --line-number //按序号有行号显示规则
	iptables -A INPUT -s 192.168.3.200 -j DROP  //添加末尾阻止ip进入
	iptables -I INPUt -s 192.168.3.202 -j DROP  //插入头部规则
	intables -D INPUT 1		//删除第一条进入规则
	iptables -A INPUT -p tcp --dport 22 -j ACCEPT  //允许TCP的22号端口
	iptables -A INPUT -i eth0 -j DROP //配置指定网卡的规则

	iptables -A OUTPUT -o eth0 -j DROP  //阻止指定网卡数据出站
	iptables -A OUTPUT -p tcp --sport 80 -j DROP //阻止端口数据输出
	应用:
	iptables -A INPUT -p icmp -j DROP  //禁止ping服务器
	service iptables save	//保存规则到本地,重启依然有效
	iptables-save>/etc/sysconfig/iptables //保存到文件,重启有效
	telnet 192.168.3.120 25 //测试对应端口是否打开,ctrl+] 异常退出 ctrl+D 退出
	编写脚本:
	IPT="/sbin/iptables"

	$IPT -F
	$IPT -P INPUT DROP
	$IPT -P FORWARD DROP
	$IPT -P OUTPUT DROP

	$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
	$IPT -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

	$IPT -A INPUT -p tcp --dport 22 -j ACCEPT
	$IPT -A OUTPUT -p tcp --dport 22 -j ACCEPT

	$IPT -A INPUT -i lo -j ACCEPT
	$IPT -A OUTPUT -o lo -j ACCEPT

	#$IPT -A INPUT -p icmp -j ACCEPT 禁止Ping服务器
	$IPT -A OUTPUT -p icmp -j ACCEPT

	$IPT -A OUTPUT -p udp -m udp --dport 53 -j ACCEPT
	#$IPT -A INPUT -p udp -m udp --sport 53 -j ACCEPT

	$IPT -A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT
	$IPT -A INPUT -p tcp --dport 80 -j ACCEPT

	$IPT -A INPUT -p tcp --dport 21 -j ACCEPT
	$IPT -A INPUT -p tcp --dport 10020:10040 -j ACCEPT

	$IPT -A OUTPUT -p udp --dport 123 -j ACCEPT

	#$IPT -A INPUT -j REJECT --reject-with icmp-host-prohibited
	#$IPT -A FORWARD -j REJECT --reject-with icmp-host-prohibited

	service iptables save
	service iptables restart

18、web服务器之httpd的安装调试
	yum -y install httpd httpd-devel
	paachectl start //启动apache	service httpd start  /etc/init.d/httpd start
	vi /etc/httpd/conf/httpd.conf	//apache的主配置文件
		ServerTokens Minor //配置成不显示服务器信息
		ServerSignature Off/EMail//不显示服务信息或显示管理员邮箱
		Timeout 60		//超时时间60秒
		KeepAlive Off	//是否持久化连接,一次连接多个资源
		ServerName localhost  //设置服务器名字
		Options FollowSymLinks 开启软链接,Options -FollowSymLinks 禁止软链接
		Options -Indexes	//不能查看网站目录列表
		UserDir public_html  //能访问home下的public_html目录,如.../~doobo/
		NameVirtualHost *:80 //多虚拟主机必开的配置项,匹配域名
	var/log/httpd/	//apache的日志文件目录
	var/www/html	//apache的默认网站根目录
   多虚拟主机配置:
	//主配置开启NameVirtualHost *:80
	vi /etc/httpd/conf.d/virtual.conf
	<VirtualHost *:80>
    		ServerAdmin admin@163.com
    		DocumentRoot /var/www/html
    		ServerName www.hd.com
    		ErrorLog logs/www.hd.com-error_log
    		CustomLog logs/www.hd.com-access_log common
	</VirtualHost>
	<VirtualHost *:80>
    		ServerAdmin admin@163.com
    		DocumentRoot /bbs
    		ServerName bbs.hd.com
    		ErrorLog logs/bbs.hd.com-error_log
    		CustomLog logs/bbs.hd.com-access_log common
	</VirtualHost>
   重点(Tomcat和apache反向代理):
	yum install gcc-c++	//编译jatka环境
	yum install httpd-dev.rpm //扩展所需的apxs
	jakarta-tomcat-connectors-1.2.15-src.tar.gz //下载转发包
	tar xzvf jakarta-tomcat-connectors-1.2.15-src.tar.gz
	cd jakarta-tomcat-connectors-1.2.15-src/jk/native
	./configure --with-apxs=/usr/bin/apxs
	make
	cp ./apache-2.0/mod_jk.so /etc/httpd/modules/
	在/usr/local/apache2/conf.d/下面建立两个配置文件mod_jk.conf和workers.properties
	vi mod_jk.conf
	JkWorkersFile /etc/httpd/conf.d/workers.properties
	JkLogFile /tmp/mod_jk.log
	# Set the jk log level [debug/error/info]
	JkLogLevel info
	# Select the log format
	JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
	# JkOptions indicate to send SSL KEY SIZE,
	JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
	# JkRequestLogFormat set the request format
	JkRequestLogFormat "%w %V %T"
	JkMount /myapp/* worker1 #*/
	JkMount /*.jsp worker1 #*/
	vi workers.properties
	#Defining a worker named worker1 and of type ajp13
	worker.list=worker1
	# Set properties for worker1
	worker.worker1.type=ajp13
	worker.worker1.host=localhost
	worker.worker1.port=8009
	worker.worker1.lbfactor=50
	worker.worker1.cachesize=10
	worker.worker1.cache_timeout=600
	worker.worker1.socket_keepalive=1
	worker.worker1.socket_timeout=300
	在/etc/httpd/conf/http.conf里面开启
	LoadModule jk_module modules/mod_jk.so
	在tomcat的server.xml中的Host之中添加
	<Context path="" docBase="/var/www/html" debug="0" reloadable="true" crossContext="true"/>

19、RewriteEngine图片防盗链和伪静态:
   a、基本示例:开启RewriteRule
    <VirtualHost *:80>
    	ServerAdmin admin@163.com
    	DocumentRoot /var/www/html
    	ServerName 192.168.3.120
    	ErrorLog logs/localhost-error_log
    	CustomLog logs/localhost-access_log common
    	RewriteEngine On
    	RewriteRule (.*)\.jsp$ http://192.168.3.120/index.html
     </VirtualHost>
    b、伪静态、防盗链使用,动态添加规则-->开启AllowOverride:
      <VirtualHost *:80>
    	ServerAdmin admin@163.com
    	DocumentRoot /var/www/html
    	ServerName 192.168.3.120
    	ErrorLog logs/localhost-error_log
    	CustomLog logs/localhost-access_log common
    	<Directory /var/www/html>
         		Options FollowSymLinks
         		AllowOverride All
   	</Directory>
      </VirtualHost>
      vi /var/www/html/.htaccess  //编辑规则文件,放/var/www/html下
		RewriteEngine On
		RewriteCond %{REQUEST_FILENAME} !-f
		RewriteCond %{REQUEST_FILENAME} !-d
		RewriteRule .? /404.html [L]
		#配置请求不是文件或目录的直接跳到404.html
		RewriteCond %{REQUEST_FILENAME} \.(gif|jpeg|png|jpg)$ [NC]
		RewriteCond %{HTTP_REFERER} !^$
		RewriteCond %{HTTP_REFERER} !^http://192.168.3.120
		RewriteCond %{HTTP_REFERER} !baidu\.com [NC]
		RewriteRule \.(jpg|jpeg|png|gif|bmp) error.jpg
		#图片防盗链,只对网站有用,本地无效
		RewriteCond %{REQUEST_URI} ^/allow
		RewriteCond %{REQUEST_FILENAME} \.swf$ [NC]
		RewriteCond %{HTTP_REFERER} !^$
		RewriteCond %{HTTP_REFERER} !baionew\.com [NC]
		RewriteRule (.*) /allow/error.swf [R=301,NC,L]
		#swf防盗链
		#RewriteRule ^(\d+).html$ index.html?nid=$1 [L]
		#RewriteRule ^(\d+)_(\d+)\.do$ next.html?cid=$1&nid=$2
		#把数组转换成对应的nid的值,实现伪静态
		#RewriteRule \.(jpg|jpeg|png|gif|bmp) noimg.htm
		#不能访问所有图片

20、Swap的基本配置:
	free -m	//查看内存使用情况,含虚拟内存
	swapon -s	//cat /proc/swqps查看虚拟内存含文件和分区的详细信息
	mkswap /dev/sdb2	//设置交换分区磁盘
	swapon /dev/sdb2	//启用指定交换分区,记得写入/etc/fstab
	交换文件的配置方案:
	dd if=/dev/zero of=/swapfile bs=1024k count=2048 //创建2G交换文件
	mkswap /swapfile	//设置交换文件
	swapon /swapfile	//启用交换文件
	/swapfile swap swap defaults 0 0	//写入/etc/fstab,开机引导启动
	//删除交换分区或文件
	swapoff	/dev/sdb2	//关闭交换分区
	vi  /etc/fstab	删除对应项目
	fdisk 或 rm	删除对应文件或分区

21、VSFTP的搭建与配置:
	yum -y install vsftpd
	vi /etc/vsftp/ftpusers	//配置不允许登录ftp的帐号
	vi /etc/vsftp/user_list	//配置允许登录或者不允许登录,须配置vsftp.conf
	vi /etc/vsftp/vstfp.conf
		pasv_min_port=10020
		pasv_max_port=10040		//限制端口,便于配置iptables
		anonymous_enable=YES		//允许匿名用户
		anon_upload_enable=YES	//允许匿名用户上传文件,目录须加写权限
		chroot_local_user=YES	//允许改变目录
		chroot_list_enable=YES	//允许查看列表
	vi chroot_list_file=/etc/vsftpd/chroot_list //上面2项为YES,则里面的用户可以改变目录
	//配置ftp目录,网速,端口等,/etc/vsftp/vsftp.conf
	local_root=/ftp		//配置所有帐号默认访问目录
	max_per_ip=1		//最大连接数,同时登录用户数
	local_max_rate=20480		//限制最大速度20K

22、NTP配置,时间同步
	date +"%Y-%m-%d %H:%M:%S"	//格式化时间
	date -s 22:30:22		//设置时间
	hwclock -r			//查看硬件时钟
	hwclock -s			//把硬件时钟同步到软件时钟date
	hwclock -w			//把软件时钟写入硬件时钟
	yum install -y ntp		//安装NTP时间同步服务
	/usr/sbin/ntpdate  0.asia.pool.ntp.org>/tmp/ntp.log && /sbin/hwclock -w//同步时间
	//写入crontab,实现时间同步,或者开启ntp服务,不能同时使用

23、UBuntu系统的安装和Pear Linux及fedora的介绍
	apt-cache search mysql	//ubuntu搜索软件
	apt-get install mysql	//ubuntu安装软件
	.deb			//ubuntu的软件包后缀名

24、redis安装与配置:
	a、下载redis源码包
	b、安装gcc-c++环境	yum install gcc-c++
	c、解压源码:tar -zxvf redis-3.0.0.tar.gz
	d、进入解压后的目录:make
	e、安装到指定目录: make install PREFIX=/usr/local/redis
		一般安装目录下会有bin目录,就安装成功
    redis的启动与关闭:
	[root@itheima bin]# ./redis-server
	强制关闭:Ctrl+c
	正常关闭:[root@itheima bin]# ./redis-cli shutdown
    后端启动:
	[root@itheima bin]# cp /root/redis-3.0.0/redis.conf ./  拷贝配置文件到bin目录
	修改redis.conf文件,将daemonize改为yes
	[root@itheima bin]# ./redis-server redis.conf //启动redis
    	强制关闭:[root@itheima bin]# kill -9 5071
	正常关闭:[root@itheima bin]# ./redis-cli shutdown

    客户端启动:
	启动客户端命令:[root@itheima bin]# ./redis-cli -h 127.0.0.1 -p 6379
	//外部连接注意防火墙配置安全问题

    Redis的集群配置:
	集群管理工具(redis-trib.rb)是使用ruby脚本语言编写的
	yum install ruby	安装ruby
	yum install rubygems
	gem install redis-3.0.0.gem	安装ruby和redis接口,百度获取,版本不同
	新建集群目录:redis-cluster
	将redis-3.0.0包下src目录中的redis-trib.rb文件拷贝到redis/redis-cluster/
	cp redis-trib.rb  /usr/local/redis/redis-cluster
	端口设计如下:7001-7006
	[root@itheima redis19]# cp bin ./redis-cluster/7001 –r	复制出一个7001机器
	[root@itheima 7001]# rm -rf appendonly.aof dump.rdb	 如果存在持久化文件,则删除
	配置redis.conf的集群参数:cluster-enable yes	port 7001 	//7002-7006多一样配置好
	启动7001-7006这六台机器-脚本-注意赋给脚本运行权限 chmod 744 redis-start.sh:
		cd 7001
		./redis-server redis.conf
		cd ..
		cd 7002
		./redis-server redis.conf
		cd ..
		cd 7003
		./redis-server redis.conf
		cd ..
		cd 7004
		./redis-server redis.conf
		cd ..
		cd 7005
		./redis-server redis.conf
		cd ..
		cd 7006
		./redis-server redis.conf
		cd ..
  	利用rb语言脚本自动配置集群
	./redis-trib.rb create --replicas 1 10.10.10.65:7001 10.10.10.65:7002 10.10.10.65:7003
	10.10.10.65:7004 10.10.10.65:7005 10.10.10.65:7006
		/为每个节点配置一个备份节点,前三个为主节点,后三个为备份节点
	[root@itheima 7001]# ./redis-cli -h 192.168.242.137 -p 7001 -c	连接集群
		cluster info	查看集群信息
		cluster nodes	查看集群节点
	注意防火墙的安全配置

	停止集群
	社区并没有提及集群的停止方法,经过实验后发现可以通过先停止所有从节点,再停止所有主节点
	的方式完成此功能。如果先停止主节点的话,
	可能会触发自动failover。启动时先启动所有主节点,再启动所有从节点。启动时将从cluster-
	config-file中获取节点之前的角色。

	升级集群
	从节点升级很简单,只需要先停止节点服务,然后启动更新后版本即可。如果此过程中有客户端正
	在使用此节点,当发现不可用时会重连到其它
	从节点或者主节点。
	如果升级主节点,过程稍微麻烦一点,可以按照下列步骤:
	1. 使用cluster failover命令执行手动failover,将主节点转换为从节点;
	2. 对转换后的从节点进行升级;
	3. 再次执行手动failover,将从节点转换为主节点。
	上述步骤只能对一个主节点进行升级,其余主节点升级,按照这些步骤执行多次即可。

  

posted @ 2017-12-28 10:07  zhuzhipeng  阅读(706)  评论(0编辑  收藏  举报