centos 默认runlevel vim /etc/inittab id:5:initdefault: 将 5修改为3 shutdown -r now
centos 修改 runlevel
linux 永久修改网卡IP
永久修改网卡IP vi /etc/sysconfig/network-scripts/ifcfg-eth0 [root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=dhcp //注 dhcp 为自动,静态为 static再加一行 IPADDR=192.168.38.109 再service network restart HWADDR=00:0C:29:4C:A3:70 ONBOOT=yes
U盘安装 linux系统 后操作
由于用U盘安装完系统后,拔下U盘,系统起不来,所以在拔U盘前得安装grub。步骤如下: 1、 将grub写到第一个硬盘的MBR上。 在终端下进行操作: [root@localhost~]#grub Grub>root (hd0,5) //hd0为第一块硬盘 后一个5为根挂在所在的分区 Grub>setup (hd0) Grub>quit 2、修改/etc/grub.conf配置文件 =原文件=============================================================== #boot=/dev/sdb default=0 timeout=5 splashimage=(hd1,6)/grub/splash.xpm.gz hiddenmenu title CentOS (2.6.18-194.el5) root (hd1,6) kernel /vmlinuz-2.6.18-194.el5 ro root=LABEL=/ initrd /initrd-2.6.18-194.el5.img title Other rootnoverify (hd1,0) chainloader +1 ~ =现改为============================================================== #boot=/dev/sdb default=0 timeout=5 splashimage=(hd0,5)/grub/splash.xpm.gz hiddenmenu title CentOS (2.6.18-194.el5) root (hd0,5) kernel /vmlinuz-2.6.18-194.el5 ro root=LABEL=/ initrd /initrd-2.6.18-194.el5.img title Other rootnoverify (hd0,0) chainloader +1 ~
Linux scp 拷贝文件
1.从远程机器拷贝文件 到 本地来 scp root@192.168.1.201:/opt/79/win2003-8.img /www 命令格式: scp [远程计算机用户名]@[远程计算机ip地址]:[要拷贝的文件路径及文件名] [存放该文件的本机路径] 2.从 本地 拷贝文件到 远程机器上; scp -r /home/ root@192.168.1.100:/root/ scp /home/test.txt root@192.168.1.100:/root/ 其实上传文件和文件夹区别就在参数 -r, 跟cp, rm的参数使用差不多, 文加价多个 - 命令格式为: scp [要拷贝的文件路径及文件名] [远程计算机用户名]@[远程计算机的ip地址]:[远程计算机存放该文件的路径]
replace into 用法
经常遇到这样的情况:
1. 首先判断数据是否存在;
2. 如果不存在,则插入;
3.如果存在,则更新。
在 SQL Server 中可以这样处理:
if not exists (select 1 from t where id = 1) insert into t(id, update_time) values(1, getdate()) else update t set update_time = getdate() where id = 1那么 MySQL 中如何实现这样的逻辑呢?
别着急!MySQL 中有更简单的方法:
replace into
replace into t(id, update_time) values(1, now()); 或 replace into t(id, update_time) select 1, now();replace into 跟 insert 功能类似,不同点在于:
replace into 首先尝试插入数据到表中,
1. 如果发现表中已经有此行数据(根据主键或者唯一索引判断)则先删除此行数据,然后插入新的数据。
2. 否则,直接插入新数据。
要注意的是:插入数据的表必须有主键或者是唯一索引!
否则的话,replace into 会直接插入数据,这将导致表中出现重复的数据。
MySQL replace into 有三种形式:
1. replace into tbl_name(col_name, ...) values(...) 2. replace into tbl_name(col_name, ...) select ... 3. replace into tbl_name set col_name=value, ...前两种形式用的多些。
其中 “into” 关键字可以省略,不过最好加上 “into”,这样意思更加直观。
另外,对于那些没有给予值的列,MySQL 将自动为这些列赋上默认值。
curl批处理
function my_mt_curl($date){ $i = count($date['tmp_rid']); for($m=0;$m<$i;$m++){ $ch[$m] = curl_init(); } for($m=0;$m<$i;$m++){ curl_setopt($ch[$m], CURLOPT_URL, $date['url'][$m]); curl_setopt($ch[$m], CURLOPT_HEADER, 0); curl_setopt($ch[$m], CURLOPT_ENCODING, ' gzip, deflate'); // curl_setopt($ch[$m], CURLOPT_TIMEOUT, $date['timeout'] ); if($date['header']){curl_setopt($ch[$m], CURLOPT_HTTPHEADER, $date['header']);} curl_setopt($ch[$m], CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0; KB974487)' ); if( $date['referer']){curl_setopt($ch[$m], CURLOPT_REFERER, $date['referer']);} curl_setopt($ch[$m], CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch[$m], CURLOPT_RETURNTRANSFER,1); if($date['cookie_file']){curl_setopt($ch[$m], CURLOPT_COOKIEFILE, $date['cookie_file'] );curl_setopt($ch, CURLOPT_COOKIEJAR, $date['cookie_file'] );} if($date['cookie_str']){curl_setopt($ch[$m], CURLOPT_COOKIE, $date['cookie_str'] );} if($date['post_date']){curl_setopt($ch[$m], CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_POSTFIELDS, $date['post_date'] );} } $mh = curl_multi_init(); for($m=0;$m<$i;$m++){ curl_multi_add_handle($mh,$ch[$m]); } $active = null; do { $mrc = curl_multi_exec($mh, $active); } while ($mrc == CURLM_CALL_MULTI_PERFORM); while ($active && $mrc == CURLM_OK) { if (curl_multi_select($mh) != -1) { do { $mrc = curl_multi_exec( $mh , $active); } while ($mrc == CURLM_CALL_MULTI_PERFORM); } } for( $m = 0 ; $m< $i ; $m++ ){ $postrid = $date['tmp_rid'][$m]; $cons[$postrid] = curl_multi_getcontent($ch[$m]); $info = curl_getinfo($ch[$m]); curl_multi_remove_handle($mh, $ch[$m] ); } curl_multi_close($mh); return $cons; }
centos 安装kvm虚拟机
centos 安装kvm虚拟机 1、先确认一下电脑是否打开了虚拟化 在boot的设置打开VT 2.查看CPU是否支持虚拟化 grep vmx /proc/cpuinfo 3、安装kvm虚拟机软件 yum install -y qemu-kvm.x86_64 qemu-kvm-tools.x86_64 #安装kvm内核 yum install libvirt.x86_64 libvirt-cim.x86_64 libvirt-client.x86_64 libvirt-java.noarch libvirt-python.x86_64 #安装virt管理工具 modprobe kvm #加载kvm内核 modprobe kvm-intel #intel cpu加载kvm-intel内核,要支持全虚拟化,必须开启;要求cpu支持,通过bios可设置。 modprobe kvm-amd #amd cpu加载kvm-intel 3、查看虚拟机模块安装 [root@m8 ~]# modprobe -ls|grep kvm kernel/arch/x86/kvm/kvm.ko kernel/arch/x86/kvm/kvm-intel.ko kernel/arch/x86/kvm/kvm-amd.ko .配置桥接网卡 1>安装桥接程序 yum install bridge bridge-utils -y bridge 可以不安装 2>配置网卡文件 cd /etc/sysconfig/network-scripts/ vim ifcfg-eth0 DEVICE=eth0 BRIDGE=br0 ONBOOT=yes vim ifcfg-br0 DEVICE=br0 TYPE=Bridge ONBOOT=yes BOOTPROTO=static IPADDR=192.168.0.12 NETWORK=255.255.255.0 GATEWAY=192.168.0.1 3>添加桥接网卡,并把网卡添加到桥接网卡 brctl addbr br0 brctl addif br0 eth0 KVM虚拟机的正常安装 virt-install --name win2003-1 --ram=3072 --arch=x86_64 --vcpus=1 --os-type=windows --os-variant='win2k' -c /home/2003_1.iso --disk path=/home/windows2003_1.img,size=5 --network bridge=br0 --vnc --vnclisten=0.0.0.0 -name 安装虚拟机的名称 -ram 分配的内存大小 --arch 平台架构 --vcpus cpu的数量 --os-type 操作系统类型 --os-variant 操作系统版本 -c 光盘镜像地址 --diskpath 文件路径 size 设置大小 --vnc 设置vnc kvm 虚拟机的删除 virsh destroy s1(停止虚拟机s1) virsh undefine s1(z删除虚拟机定义) 删除虚拟机相关配置文件 /var/lib/libvirt/images/s1/ /etc/libvirt/qemu/s1.xml KVM虚拟机的复制 virt-clone -o win2003-1 -n win2003-3 -f /virimg/win2003-3.img -o 原始客体的名称,必须为挂起或者关闭状态 -n 新虚拟机的名称 -f 作为新客户端磁盘映像的新文件 本地需要安装vnc 客户端
samba文件共享
samba文件共享 1)安装软件 2)修改配置文件 3)启动服务 安装软件: yum -y install samba --skip-broken(参数的意思是跳过依赖关系) 修改配置文件: vim /etc/samba/smb.conf 把以下添加到这个配置文件的最下面(这个是配置有用户名的登录的) [share} path = /share broweable = yes writable = yes 如果添加smb用户: 1)useradd user1 2)smbpasswd -a user1 [public]#这个是配置匿名用户访问samba的配置 comment = Public Stuff path = /path/dirname broweable = yes #可浏览 writable = yes #可写 启动服务: service smb restart 查看进程: pstree |grep smb 查看端口: netstat -tunpl |grep :13 c测试: linux客户端: mount //192.168.10.1/share /mnt -o username=user1 mount //192.168.100.1/web /mnt -o user=user1,pass=123 window客户端:\192.168.10.1share window客户端:映射网络驱动器 smbstatus 查看连接共享目录的用户 smbstatus a testparm 测试Samba的设置是否正确无误 testparm -s 可以显示samba的所有共享目录信息 查看所有samba用户列表:pdbedit -L Samba服务器的安全级别分为5种,分别是user、share、server、domain和ads。在设置不同的级别时,samba服务器还会使用口令服务器和加密口令。 1、user -----客户端访问服务器时需要输入用户名和密码,通过验证后,才能使用服务器的共享资源。此级别使用加密的方式传送密码。 2、share -----客户端连接服务器时不需要输入用户名和密码 3、server -----客户端在访问时同样需要输入用户名和密码,但是,密码验证需要密码验证服务器来负责。 4、domain -----采用域控制器对用户进行身份验证 5、ads -----若samba服务器加入到Windows活动目录中,则使用ads安全级别,ads安全级别也必须指定口令服务器 [homes] -----samba用户的宿主目录 comment = Home Directories -----设置共享的说明信息 browseable = no -----目录浏览权限 writable = yes -----用户对共享目录可写 这个共享目录只有用户本身可以使用,默认情况下,用户主目录位于/home目录下,每个Linux用户有一个以用户名命名的子目录。 以下是共享打印机的设置: [printers] -----共享打印机 comment = All Printers -----设置共享的说明信息 path = /var/spool/samba -----指定共享目录的路径 browseable = no -----目录浏览权限 guest ok = no -----允许来宾访问 writable = no -----用户对共享目录可写 printable = yes -----可以打印 以上是系统默认设置 添加自定义的共享目录:( user1对/ASUS有所有权,user2拥有只读权限,其他用户不能访问;public共享目录允许所有用户访问及上传文件) [ASUS] comment = user1 Directories -----设置共享的说明信息 browseable = yes -----所有samba用户都可以看到该目录 writable = yes -----用户对共享目录可写 path = /ASUS -----指定共享目录的路径 [public] comment = all user Directories -----设置共享的说明信息 browseable = yes -----所有samba用户都可以看到该目录 writable = yes -----用户对共享目录可写 path = /public -----指定共享目录的路径 guest ok = yes -----允许来宾访问 修改完配置文件后需要重启samba服务 [root@localhost ~]#service smb restart Samba服务器包括两个服务程序 2 smbd ? smbd服务程序为客户机提供了服务器中共享资源的访问 2 nmbd ? nmbd服务程序提供了NetBIOS主机名称的解析,为Windows网络中域或者工作组内的主机进行主机名称的解析 设置目录权限 [root@localhost ~]#mkdir /ASUS ------创建要共享目录 [root@localhost ~]#mkdir /public ------创建要共享的目录 [root@localhost ~]#chmod 750 /ASUS ------修改/ASUS权限(属主拥有所有权,属组只读,其它用户不能访问) [root@localhost ~]#chown user1 /ASUS ------将/ASUS的属主改为user1 [root@localhost ~]#groupadd ASUS ------添加ASUS组 [root@localhost ~]#usermod –G ASUS user1 ------将user1加入到ASUS组 [root@localhost ~]#usermod –G ASUS user2 ------将user2加入到ASUS组 [root@localhost ~]#chgrp ASUS /ASUS ------将/ASUS的属组改为 ASUS [root@localhost ~]#chmod 777 /public ------给所有用户分配完全控制
phpmyadmin 添加多服务器方法
复制 config.sample.inc.php 为 config.inc.php 修改以下代码 /* * Servers configuration */ $i = 0; /* * First server */ $i++; $cfg['Servers'][$i]['auth_type'] = 'http'; $cfg['Servers'][$i]['host'] = '118.244.232.147'; $cfg['Servers'][$i]['connect_type'] = 'tcp'; $cfg['Servers'][$i]['compress'] = false; $cfg['Servers'][$i]['extension'] = 'mysql'; $i++; $cfg['Servers'][$i]['auth_type'] = 'http'; $cfg['Servers'][$i]['host'] = 'localhost'; $cfg['Servers'][$i]['connect_type'] = 'tcp'; $cfg['Servers'][$i]['compress'] = false; $cfg['Servers'][$i]['extension'] = 'mysql';
ThinkPHP URL 重写
通常的URL里面含有index.php,为了达到更好的SEO效果可能需要去掉URL里面的index.php ,通过URL重写的方式可以达到这种效果,通常需要服务器开启URL_REWRITE模块才能支持。 下面是Apache的配置过程,可以参考下: 1、httpd.conf配置文件中加载了mod_rewrite.so模块 2、AllowOverride None 将None改为 All 3、确保URL_MODEL设置为2 4、把下面的内容保存为.htaccess文件放到入口文件的同级目录下RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] 重启Apache