Android-Charts技术交流QQ群现已开通,欢迎加入。群号:170987350
Android-Charts技术社区网站http://faq.android-charts.com/

CentOS6.x/7.x配置Nginx系统服务

September 20th, 2017 No comments

使用源代码编译方式安装Nginx的时候,肯定不如用用yum方式安装来得便捷,CentOS的系统服务需要自行配置。
自行配置Nginx为CentOS的系统服务时,出于进程管理考虑需要首先配置pid,出于安全考虑建议修改nginx的运行用户。

创建nginx.pid文件用于nginx主进程

1
touch /usr/local/nginx/logs/nginx.pid

修改conf/nginx.conf,设置pid和user

1
2
user     nobody;
pid       logs/nginx.pid;

CentOS6.x配置nginx系统服务
创建一个/etc/init.d/nginx文件

1
2
touch /etc/init.d/nginx
chmod 755 /etc/init.d/nginx

/etc/init.d/nginx文件中写入以下内容,
源文件取自yum方式安装后的文件,不过需要自己修改一下nginx的指向位置
nginx=”/usr/local/nginx/sbin/nginx”
NGINX_CONF_FILE=”/usr/local/nginx/conf/nginx.conf”
Read more…

Categories: 系统管理 Tags: , ,

Tomcat进程无法正常stop问题

September 20th, 2017 No comments

CentOS使用Catalina.sh 来管理Tomcat运行时,Catalina.sh run 之后产生的tomcat进程会无法使用 Catalina.sh stop -force关闭。如果Catalina.sh的默认内容来配置tomcat服务,/etc/init.d/tomcat stop 也将会失效

查看Catalina.sh文件后找到以下代码,原来需要stop的话,需要CATALINA_PID文件配合。
Catalina.sh 468行

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
  if [ ! -z "$CATALINA_PID" ]; then
    if [ -f "$CATALINA_PID" ]; then
      if [ -s "$CATALINA_PID" ]; then
        kill -0 `cat "$CATALINA_PID"` >/dev/null 2>&1
        if [ $? -gt 0 ]; then
          echo "PID file found but no matching process was found. Stop aborted."
          exit 1
        fi
      else
        echo "PID file is empty and has been ignored."
      fi
    else
      echo "\$CATALINA_PID was set but the specified file does not exist. Is Tomcat running? Stop aborted."
      exit 1
    fi
  fi

Read more…

Windows/Linux 编译和配置Tomcat Native

September 20th, 2017 No comments

Tomcat Native 是利用 APR 来提升Tomcat性能的本地API。
Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。

WIndows环境下安装Tomcat Native只需要到
http://tomcat.apache.org/download-native.cgi
下载Tomcat Native Connector的window版本,下载完毕后将
tcnative-1.dll (含32位和64位)
复制到tomcat目录下的bin目录即可使用。

Linux需要自行编译Tomcat Native Connector,具体步骤如下
Read more…

Categories: 系统管理, 零敲碎打 Tags: ,

CentOS7配置NFS文件共享

September 18th, 2017 No comments

NFS(Network File System)即网络文件系统,是Linux/Unix支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。

测试环境 CentOS7.3

NFS服务端配置
1.安装nfs-utils和rpcbind

1
2
3
4
# yum update
yum -y update
# install nfs
yum -y install nfs-utils rpcbind

2.启用和打开NFS相关服务rpcbind,nfs-server,nfs-lock,nfs-idmap。 注意需要先启动rpcbind

1
2
3
4
5
6
7
8
9
10
11
#enable services
systemctl enable rpcbind
systemctl enable nfs-server
systemctl enable nfs-lock
systemctl enable nfs-idmap
 
# start nfs service
systemctl start rpcbind
systemctl start nfs-server
systemctl start nfs-lock
systemctl start nfs-idmap

Read more…

Categories: 系统管理, 零敲碎打 Tags: ,

RHEL6.x更换为CentOS版本的YUM并替换源

August 25th, 2017 No comments

YUM(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装。
RHEL的提供YUM工具默认指向Redhat的源服务器,使用YUM之前需要向Redhat注册方能使用。

CentOS提供了与RHEL相同的移植版本,可以使用CentOS版本的YUM替换RHEL的YUM,需要先删除后安装。
同时替换一下YUM的源头服务器即可

1.删除RHEL默认安装的YUM

1
rpm -qa|grep yum|xargs rpm -e —nodeps

2.下载CentOS版本的YUM安装包

1
2
3
4
curl -o ./ http://vault.centos.org/6.0/os/x86_64/Packages/python-iniparse-0.3.1-2.1.el6.noarch.rpm
curl -o ./ http://vault.centos.org/6.0/os/x86_64/Packages/yum-metadata-parser-1.1.2-14.1.el6.x86_64.rpm
curl -o ./ http://vault.centos.org/6.0/os/x86_64/Packages/yum-3.2.27-14.el6.centos.noarch.rpm
curl -o ./ http://vault.centos.org/6.0/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.26-11.el6.noarch.rpm

Read more…

Categories: 系统管理 Tags:

VBS实现目录下所有文件归集

August 25th, 2017 No comments

一个简单的需求:
Windows 环境下用VBS/VBA来实现抽取某一个特定目录下的全部所有文件,要求遍历当前目录下所有的子目录。
注意各子目录下文件的文件名可能会重复,各子目录下存在空目录的情况。

实现VBS代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
'需要遍历的目录路径
dim strDirPath = "c:\dir"
 
'遍历目录
Private Sub FileTree(strPath)
    Set obFso = CreateObject("Scripting.FileSystemObject")
    If obFso.FolderExists(strPath) Then
        Set obFolder = obFso.GetFolder(strPath)
        '遍历当前目录下的所有目录,递归调用
        Set obSubFolders = obFolder.SubFolders
        For Each obSubFolder In obSubFolders
            Call FileTree(obSubFolder.Path & "")
        Next
        '剔除当前目录
        If strPath = Trim(strDirPath) Then
            Exit Sub
        End If
        '遍历当前目录下的所有文件
        Set obFiles = obFolder.Files
        For Each obFile In obFiles
            Call ExcuteFolderConcentrate(obFile.Path & "")
        Next
    Else
        MsgBox "Invalide Path"
        Exit Sub
    End If
End Sub
 
'文件归集操作
Private Sub ExcuteFolderConcentrate(strPath)
    Set obFso = CreateObject("Scripting.FileSystemObject")
    If obFso.FileExists(strPath) Then
        fullPath = Trim(strDirPath) & “\"
        '按目录层级设置新文件名
        newFileName = Replace(Right(strPath, Len(strPath) - Len(fullPath)), "\", "_”)
        '重复文件重新命名
        If obFso.FileExists(fullPath & newFileName) Then
            Call obFso.copyFile(strPath, fullPath & newFileName & ".duplicate")
        Else
            Call obFso.copyFile(strPath, fullPath & newFileName)
        End If
    End If
End Sub
 
'遍历整个目录,完成文件归集
FileTree (strDirPath)
'重新打开目录文件夹
CreateObject("Shell.Application").Explore strDirPath
Categories: 语言编程, 零敲碎打 Tags: ,

CentOS的firewalld和iptables使用

August 22nd, 2017 No comments

CentOS在7.x和6.x分别使用firewalldiptables作为防火墙工具,习惯上iptables之后firewalld各种不适应。
下面总结在各个版本CentOSfirewalld和iptables使用。 这里配置打开HTTP/HTTPs端口功能,分别对应80和443端口

CentOS7.x 使用firewalld

1
2
3
4
5
6
7
8
#====================CENTOS 7.x==================
systemctl enable firewalld
systemctl start firewalld
# HTTP
firewall-cmd --permanent --zone=public --add-port=80/tcp
# HTTPS
firewall-cmd --permanent --zone=public --add-port=443/tcp
firewall-cmd —reload

Read more…

Categories: 系统管理 Tags: , ,