NFS(Network File System)即网络文件系统,是Linux/Unix支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
测试环境 CentOS7.3
NFS服务端配置
1.安装nfs-utils和rpcbind
# yum update
yum -y update
# install nfs
yum -y install nfs-utils rpcbind |
# yum update
yum -y update
# install nfs
yum -y install nfs-utils rpcbind
2.启用和打开NFS相关服务rpcbind,nfs-server,nfs-lock,nfs-idmap。 注意需要先启动rpcbind
#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 |
#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…
应用程序服务器由Windows环境整体迁移到Linux环境,出现了不能获取本机IP地址的问题
原因是下面一段JAVA代码在Linux下直接返回127.0.0.1。Windows下有效的InetAddress貌似在linux下不起作用。
public static String getLocalIP() {
String ip = "";
try {
InetAddress address = InetAddress.getLocalHost();
if(address != null) {
ip = address.getHostAddress();
}
} catch (UnknownHostException e) {
e.printStackTrace();
}
return ip;
} |
public static String getLocalIP() {
String ip = "";
try {
InetAddress address = InetAddress.getLocalHost();
if(address != null) {
ip = address.getHostAddress();
}
} catch (UnknownHostException e) {
e.printStackTrace();
}
return ip;
}
原因在于Java使用的JNI代码调用的是Linux中的gethostname内核函数
这个函数在Linux主机没有绑定IP的情况下根据Host文件定义返回默认的localhost或者127.0.0.1。
Read more…
w_char*和char*在windows编程过程中进行转换是经常需要的,通常由互联网我们取到都是utf-8编码,到windows应用程序里面却需要用unicode编码。
一开始用stdlib.h 下wcstombs_s和mbstowcs_s的代码实现,发现总是转换失败和出错。
char 转 WCHAR 、wchar_t、LPWSTR ,窄字符转宽字符,C++代码
//+------------------------------------------------------------------+
//| char to WCHAR 、wchar_t、LPWSTR etc |
//+------------------------------------------------------------------+
static char* WStr2CStr(const wchar_t* WStr)
{
// 长度设置
size_t len = wcslen(WStr) + 1;
size_t converted = 0;
// 准备转换的对象
char *CStr;
CStr=(char*)malloc(len*sizeof(char));
// 转换
wcstombs_s(&converted, CStr, len, WStr, _TRUNCATE);
// 返回
return CStr;
} |
//+------------------------------------------------------------------+
//| char to WCHAR 、wchar_t、LPWSTR etc |
//+------------------------------------------------------------------+
static char* WStr2CStr(const wchar_t* WStr)
{
// 长度设置
size_t len = wcslen(WStr) + 1;
size_t converted = 0;
// 准备转换的对象
char *CStr;
CStr=(char*)malloc(len*sizeof(char));
// 转换
wcstombs_s(&converted, CStr, len, WStr, _TRUNCATE);
// 返回
return CStr;
}
Read more…
管理Linux主机多了之后,管理大量的登录密码是一件很麻烦的事情,使用SSH-KEY方式登录服务器可以很好的解决问题。
以下是使用SSH-KEY方式实现客户端免密码登录SSH的方法。一套SSH-KEY可以等遍所有的服务器。
1.使用ssh-keygen在本地创建登录远程SSH服务器使用的公钥和私钥
ssh-keygen -t [rsa|dsa] -C "comments"
# -t 可选择RSA 和 DSA 两种密钥
# -C 可选注释 |
ssh-keygen -t [rsa|dsa] -C "comments"
# -t 可选择RSA 和 DSA 两种密钥
# -C 可选注释
一路enter之后,会在~/.ssh目录下创建两个文件
id_dsa #私钥,妥善保存好。
id_dsa.pub #公钥
2.将公钥复制到服务器上对应用户的 ~/.ssh/目录下。
3.在服务器用户的 ~/.ssh/目录下执行
cat id_dsa.pub >>authorized_keys
# 首次使用的时候
chmod 600 authorized_keys |
cat id_dsa.pub >>authorized_keys
# 首次使用的时候
chmod 600 authorized_keys
需要注意的是出于安全考虑,authorized_keys必须是600权限
Read more…
Linux下转换编码可以直接使用iconv命令搞定。支持单个文件和批量处理。
iconv命令可以将一种已知的字符集文件转换成另一种已知的字符集文件。它的作用是在多种国际编码格式之间进行文本内码的转换。
单个文件处理的shell命令
iconv -t utf-8 -f gb2312 source > target |
iconv -t utf-8 -f gb2312 source > target
# -f 源编码
# -t 目标编码
# -l :列出已知的编码字符集合
# -o file :指定输出文件
# -c :忽略输出的非法字符
# -s :禁止警告信息,但不是错误信息
Read more…
最近折腾linux nc(netcat)命令时执行 nc -l 1567 监听命令遇到protocol not available,琢磨了很久终于找到了一个可行的解决办法:
Read more…
升级MAC OS到10.11,开发环境也要调整,CocoaPods需要重新安装一下,由于GFW的原因,访问托管在amazon S3上的rubygems.org资源不能正常访问,需要调整一下GEM的source镜像
1.首先确认一下当前source镜像地址
服务器为 https://rubygems.org/
*** CURRENT SOURCES ***
https://rubygems.org/
Read more…
Recent Comments