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

[CentOS] 使用s3fs-fuse挂载S3Bucket到本地分区

November 9th, 2018 No comments

准备工作
1.创建接入S3 Bucket的IAM用户
2.创建S3 Bucket,赋予IAM用户读写S3 Bucket的权限

测试环境
Amazon AMI Linux
CentOS 7.5

s3fs
s3fs allows Linux and macOS to mount an S3 bucket via FUSE. s3fs preserves the native object format for files, allowing use of other tools like s3cmd.

STEP1. 安装s3fs-fuse相关依赖包

1
2
 # install automake fuse fuse-devel gcc-c++ git \
 libcurl-devel libxml2-devel make openssl-devel

STEP2.下载s3fs-fuse,编译安装s3fs-fuse

1
2
3
4
5
6
7
# cd /usr/local/
# git clone https://github.com/s3fs-fuse/s3fs-fuse.git
# cd s3fs-fuse
# ./autogen.sh
# ./configure
# make
# make install

Read more…

Categories: 系统管理 Tags: , ,

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: ,