MongoDB transparent_hugepage报错
如何判断服务器是否支持Rewrite
如何安装dig
CentOS如何设置yum软件镜像源
IP配置相关
防火墙相关
域名相关
FTP配置问题(VMware)
常见操作
WeTransfer 下载
WeTransfer在国内的下载速度真的很慢,关键是大文件还容易出现中断的情况,这时可以利用一个服务器的带宽,比如亲测阿里云ECS就很快速,通过 wget 先进行下载再下载至本地
1 |
wget --user-agent Mozilla/4.0 'https://wetransfer-your-download-link' -O destination-file-name |
测速
1 |
curl -o /dev/null -s -w "time_connect: %{time_connect}\ntime_starttransfer: %{time_starttransfer}\ntime_total: %{time_total}\n" "https://xxx.xxx.xxx.xxx:443" |
配置FTP
yum install vsftpd -y
配置vsftpd.(可参考http://www.server-world.info/en/note?os=CentOS_7&p=ftp)
配置vsftpd主配置文件路径:/etc/vsftpd/vsftpd.conf
禁止匿名访问:anonymous_enable=NO
限制ftp用户访问家目录外的目录:chroot_list_enable=YES
限制ftp用户访问家目录外的目录用户列表:chroot_list_file=/etc/vsftpd/chroot_list.
开启被动模式,更好支持FlashFxp等ftp工具
pasv_enable=YES
pasv_min_port=20000 #开放的端口
pasv_max_port=20100
allow_writeable_chroot=YES #解决500 OOPS: vsftpd: refusing to run with writable root inside chroot()
/etc/vsftpd/vsftpd.conf 配置见图,注意红色部分.
配置chroot_list.
把新增的ftp用户添加进来,每个用户为一行.
#vi /etc/vsftpd/chroot_list 回车进入编辑chroot_list状态.
useradd -d /var/www/html/ -g ftp -s /sbin/nologin my_user_name
passwd my_user_name
防火墙配置路径:/etc/sysconfig/iptables
开放21端口:-A INPUT -m state –state NEW -m tcp -p tcp –dport 21 -j ACCEPT
开发20000-20100端口:-A INPUT -p tcp –dport 20000:20100 -j ACCEPT
重启防火墙:#service iptables restart;
重启vsftpd服务器:#service vsftpd start
设置用户或群的权限
1 2 |
sudo setfacl -R -m u:my_user:rwx /var/www/public_html/ sudo setfacl -R -m g:my_group:rwx /var/www/public_html/ |
Yum安装相关
查看已安装软件yum list installed
查看更新yum list updates
更新软件yum update xxx
删除软件yum remove xxx
删除软件及所有文件yum erase xxx
有时由于软件不同软件对相同的包依赖出现被覆盖的问题(broken dependencies),可尝试yum clean all,还不行的话yum deplist xxx查看所需的包来进行针对性的安装,此外还可以yum update –skip-broken来绕过问题
yum repolist查看安装镜像源,具体文件在/etc/yum.repos.d/目录下
此外还可以进行手动安装,下载压缩包,解压进入安装包目录,
1 2 3 |
.configure make make install |
yum安装如果想要保留安装文件可以通过将/etc/yum.conf中的keepcache值设为1来实现:
1 2 3 4 |
#替换 sed -i 's#keepcache=0#keepcache=1#g' /etc/yum.conf #查看 grep keepcache /etc/yum.conf |
邮件相关
postfix发送邮件出现如下报错
1 |
postdrop: warning: unable to look up public/pickup: No such file or directory |
这通常与原生的sendmail有关,执行以下命令即可修复
1 2 |
mkfifo /var/spool/postfix/public/pickup service postfix restart |
导出文件中email正则演示:
1 |
grep -E -o "\b[a-zA-Z0-9.-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9.-]+\b" filename.txt >> newfile.txt |
MongoDB transparent_hugepage报错
1 2 3 4 5 |
2016-01-11T22:13:22.317+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'. 2016-01-11T22:13:22.317+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never' 2016-01-11T22:13:22.317+0800 I CONTROL [initandlisten] 2016-01-11T22:13:22.317+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'. 2016-01-11T22:13:22.317+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never' |
解决方法:
在/etc/rc.local中加入如下代码:
1 2 3 4 5 6 |
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then echo never > /sys/kernel/mm/transparent_hugepage/defrag fi if test -f /sys/kernel/mm/transparent_hugepage/enabled; then echo never > /sys/kernel/mm/transparent_hugepage/enabled fi |
执行source /etc/rc.local使设置生效即要
设置Tomcat开机启动
1.修改/etc/rc.d/rc.local
/etc/rc.d/rc.local
2.添加下面两行脚本,记住是两行,仅仅第二行不行,必须加第一行。在/etc/rc.d/rc.local文件最后加上:
export JAVA_HOME=/usr/java/jdk1.7.0_60
/usr/local/tomcat/bin/startup.sh start
说明:/usr/java/jdk1.7.0_60 是jdk安装目录
/usr/local/tomcat是tomcat安装的目录
3.注意:修改rc.local文件为可执行
chmod +x rc.local
Apache配置Tomcat去端口号8080
有的时候我们在同一台Linux主机上配置了httpd和tomcat,但访问tomcat中的应用会带有8080端口这个小尾巴,一种方法是在Apache的配置文件中添加如下内容(以m.alanhou.org域名为例):
1 2 3 4 5 6 7 8 9 |
<VirtualHost *:80> ServerName m.alanhou.org ProxyPreserveHost On ProxyRequests Off ProxyPass / http://m.alanhou.org:8080/ ProxyPassReverse / http://m.alanhou.org:8080/ ErrorLog logs/m.alanhou.org_error_log CustomLog logs/m.alanhou.org_custom_log common </VirtualHost> |
如何判断服务器是否支持Rewrite
能过PHP代码查看:
1 2 3 4 5 6 7 |
$result = apache_get_modules(); echo 'test3'; if(in_array('mod_rewrite', $result)) { echo '支持'; } else { echo '不支持'; } |
另一种是能过phpinfo()函数查看mod_rewrite是否出现在Loaded Modules
如何安装dig
dig(域信息搜索器)命令是个用于询问 DNS 域名服务器的灵活的工具。但在默认情况下使用dig命令会出现
-bash: dig: command not found
以Centos为例,只需要执行yum install bind-utils -y进行安装就可以正常使用了。
CentOS如何设置yum软件镜像源
软件镜像源存储在/etc/yum.repos.d/CentOS-Base.repo文件中,这里以设置阿里去为例:
首先备份原文件
1 |
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak |
配置文件源(以CentOS 6为例)
1 |
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo |
生成缓存即可
1 |
yum makecache |
IP配置相关
修改IP方法
vi /etc/sysconfig/network-scripts/ifcfg-eth0
1 2 3 4 5 6 |
BOOTPROTO="static" IPADDR="192.168.1.100" #假设用192.168.1.*网段 NETMASK="255.255.255.0"; GATEWAY="192.168.1.1" DNS1="8.8.8.8" #Google DNS DNS2="8.8.4.4" #Google DNS |
修改主机名
vi /etc/sysconfig/network
1 |
HOSTNAME= name1.localhost.com |
主机名和IP映射关系
vi /etc/hosts
1 |
192.168.1.100 name1.localhost.com |
防火墙相关
关闭防火墙
service iptables stop
查看防火墙状态
service iptables status
查看开机防火墙状态:
chkconfig iptables –list
开机关闭服务
chkconfig iptables off
有时发现安装httpd且启动了服务后仍然无法在浏览器中访问,这基本上是防火墙中没有开放80端口,执行如下指令即可:
1 2 |
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT /etc/rc.d/init.d/iptables save |
域名相关
dig +trace http://www.alanhou.org可用于分析域名解析,常用参数除+trace外还有-t type和-x
whois alanhou.org查询域名管理者相关信息,若无法执行安装jwhois(yum install jwhois -y)
host -a alanhou.org
nslookup alanhou.org
FTP配置问题(VMware)
FTP的服务相对比较简单,以CentOS为例,直接输入yum install vsftpd -y即可完成安装。笔者这里使用虚拟工具VMware进行测试。
通过FileZilla连接出现Error: Failed to retrieve directory listing报错,解决方法:
1.通过getenforce如果显示为enforcing,表示SELinux被开启,键入命令setsebool ftp_home_dir 1(网上还有说要执行setsebool ftpd_disable_trans 1,但在笔者使用的Linux版本中通过getsebool -a并查到相关服务,还可通过sestatus -b | grep ftp查看ftp相关部分),重启 ftp:service vsftpd restart, 并停用防火墙iptables(service iptables stop),可正常登录ftp
2.对于线下测试环境而言关闭iptables自然没有什么大的影响,但线上生产环境显然不能这么做,所以还是要配置一下iptables文件开通ftp权限,找到/etc/sysconfig/iptables文件并添加21端口访问权限:
-A INPUT -p tcp -m state –state NEW -m tcp –dport 21 -j ACCEPT
找到/etc/sysconfig/iptables-config文件修改对应部分的内容为:
IPTABLES_MODULES=”ip_conntrack_ftp”
保存并重启
service iptables save
service iptables restart
另外很多大的空间商默认都是关闭SELinux的,方法也很简单,找到/etc/selinux/config文件修改相应的内容如下:
SELINUX=disabled
reboot 重启生效
使用getenforce查看此时显示为Disabled表示已关闭
扩展内容:
a.访问/etc/vsftpd/vsftpd.conf 设置取消匿名
anonymous_enable=NO
b.新建一个文件/etc/vsftpd/chroot_list 并在其中填写用户
然后访问/etc/vsftpd/vsftpd.conf设置允许本地用户
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
c.控制访问权限
主要是两个文件:/etc/hosts.allow和/etc/hosts.deny。首先查看/etc/hosts.allow,如果匹配到一个条目,将不在读取下面的。如果在/etc/hosts.allow没有匹配到条目,则读取/etc/hosts.deny,如果匹配,则拒绝,如果不匹配,则默认允许所有
d.配置ip(假定一个网卡)
/etc/sysconfig/network-scripts/ifcfg-eth0示例文件内容如下:
DEVICE=eth0
HWADDR=该网卡的MAC地址
TYPE=Ethernet
BOOTPROTO=”static” #此处为DHCP将动态分配ip地址
#BOOTPROTO=dhcp
UUID= a698839a-d72b-430f-8c77-d84abdc90519
ONBOOT=yes
#NM_CONTROLLED=yes
NETMASK=255.255.255.0
IPADDR=192.168.*.*
IPV6INIT=no
GATEWAY=192.168.*.*
e.禁止使用ftp服务的用户在如下文件中配置
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
常用命令
du -sh /etc 目录总大小
df -hT /etc 特定分区信息
快捷键
Ctrl + a 移到行首
Ctrl + e 移到行末
Ctrl + r 查看之前执行的命令
查找最近修改的文件
rpm的常用参数组合说明
-ivh:安装显示安装进度–install–verbose–hash
-Uvh:升级软件包–Update;
-qpl:列出RPM软件包内的文件信息[Query Package list];
-qpi:列出RPM软件包的描述信息[Query Package install package(s)];
-qf:查找指定文件属于哪个RPM软件包[Query File];
-Va:校验所有的RPM软件包,查找丢失的文件[View Lost];
-e:删除包
查找当前目录下.phtml文件中,最近30分钟内修改过的文件。
find . -name ‘*.phtml’ -type f -mmin -30
查找当前目录下.phtml文件中,最近30分钟内修改过的文件,的详细情况。
查找当前目录下,最近1天内修改过的常规文件
find . -type f -mtime -1
查找当前目录下,最近1天前(2天内)修改过的常规文件
find . -type f -mtime +1
jobs -l查看后台运行程序(后台运行在指令后加上&)
HISTSIZE 环境变量控制保留的历史记录数量
history -c清除历史记录
Cron job
指定用户(apache)执行cron job
crontab -uapache -e
设定执行的文件和频率
1 |
*/5 * * * * /var/www/html/cron.sh |
获取本机ip
1 2 3 4 |
# 方法一(请注意修改eth0为对应网卡) ifconfig eth0 |grep "inet addr"| cut -f 2 -d ":" |cut -f 1 -d " " # 方法二(默认取第一条,可修改或删除 head -1部分获取其它 IP 或全部 IP) ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"|head -1 |
或者
1 |
ifconfig eth0 | grep "inet addr" | awk '{ print $2}' | awk -F: '{print $2}' |
Apache站点仅允许指定IP访问
1 2 3 4 5 6 7 |
<Directory "/var/www/html"> Options All AllowOverride None Order Deny,Allow Deny From all Allow From 192.168.0.0/24 </Directory> |
CentOS上VNC安装配置
安装
服务器端
yum install vnc-server -y
yum groupinstall “Desktop” -y #桌面环境
添加用户、设置密码
useradd vnc
passwd vnc
常见操作
重启网络(service network restart)时出现报错
Shutting down interface eth0: Device state: 3 (disconnected)
分析原因
- NetworkManager是是分发网络服务请求的一个进程,是一个网络管理的工具。。
- 由于启动了NetworkManager服务导致的 ,netwoekmanager会和network冲突导致resolv.conf被还原
解决方法:
service NetworkManager stop关闭服务
要想开机即关闭chkconfig NetworkManager off
查看最近重启记录
last reboot | head -2
last -x | grep shutdown
修改root@后的名称
打开/etc/sysconfig/network更改HOSTNAME后面的值,然后重启生效。本方法同样可用于解决如下报错:
httpd: Could not reliably determine the server’s fully qualified domain name, using 127.0.0.1 for ServerName
服务器终端命令背景和字体颜色
setterm inversescreen on命令设置服务器白背景黑字,setterm inversescreen off关闭设置恢复默认黑底白字
另一种方法是同时设置背景和前景色:setterm -background white和setterm -foreground black,但这个方法有个明显的缺点,就时在输入第二条命令时会看不到命令行内容
添加用户到组并为组赋权限
usermod -a -G apache ftp
chmod -R g+rw /var/www/html
解决中文乱码问题
第一步先查看所使用的客户端是否使用UTF-8或需使用的编码
echo $LANG或export查看当前使用的系统语言
通过LANG=zh_CN.UTF-8或export LANG=”zh_CN.UTF-8″将当前=语言临时设置为中文,locale命令查看是否支持中文,若未出现zh_CN.UTF-8包请输入yum groupinstall chinese-support安装中文语言包
永久修改需编辑/etc/sysconfig/i18n
task blocked for more than 120 seconds报错
原因:linux会设置40%的可用内存用来做系统cache,当flush数据时这40%内存中的数据由于和IO同步问题导致超时(120s),所将40%减小到10%,解决方法在文件/etc/sysctl.conf中加入
vm.dirty_background_ratio = 5 vm.dirty_ratio = 10
如何为Linux主机添加多IP?
以为eth0网卡添加192.168.1.22为例,操作代码如下:
/sbin/ifconfig eth0:1 192.168.1.22 broadcast 192.168.1.255 netmask 255.255.255.0 up /sbin/route add -host 192.168.1.22 dev eth0:1
想要永久生效,只需将以上代码加入/etc/rc.local中即可
setup错误
采用minimal的方式安装会发现用不了setup指令
-bash: setup: command not found</span> #根据需要选择安装 yum install setuptool -y</span> yum install system-config-network* -y yum install system-config-firewall* -y yum install system-config-securitylevel-tui -y yum install system-config-keyboard -y yum install ntsysv -y</span
SSH登录问题
No supported authentication methods available (server sent: publickey,gssapi-keyex,gssapi-with-mic)
SSH无法正常登录,查看/etc/ssh/sshd_config文件,修改PasswordAuthentication为yes,然后重启SSH服务,service sshd restart。
Linux进程Signal详解
Signal | Name | Description |
1 | HUP | Hangs up |
2 | INT | Interrupts |
3 | QUIT | Stops running |
9 | KILL | Unconditionally terminates |
11 | SEGV | Produces segment violation |
15 | TERM | Terminates if possible |
17 | STOP | Stops unconditionally, but doesn’t terminate |
18 | TSTP | Stops or pauses, but continues to run in background |
19 | CONT | Resumes execution after STOP or TSTP |