分类目录归档:Linux

安装Linux版本的SQL Server

开放的态度让M$有了更多的想象空间,比如Linux版的Office和SQL Server。

下面介绍Linux下安装SQL Server的方法:

微软的安装资源库地址:https://packages.microsoft.com/config/rhel/7/

其中mssql-server-2017.repo 是安装包

prod.repo是工具包

curl https://packages.microsoft.com/config/rhel/7/mssql-server-2017.repo > /etc/yum.repos.d/mssql-server-2017.repo

然后

yum install -y mssql-server
/opt/mssql/bin/mssql-conf setup

安装工具:

curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/mssql-server-tools.repo
yum install mssql-tools
sqlcmd -S localhost -U SA

命令行(/opt/mssql-tools/bin/目录):

[root@souqu ~]# sqlcmd -S 127.0.0.1 -U sa
Password:
1>

 

CentOS配置SFTP

@创建用户组和用户,设置用户密码
#groupadd sftp
#useradd -g sftp -s /bin/false sftpuser1
#passwd sftpuser1

@创建用户home目录并指定给用户
#mkdir -p /data/sftp/sftpuser1
#usermod -d /data/sftp/sftpuser1 sftpuser1

@设置目录权限
#chown root:sftp /data/sftp/sftpuser1
#chmod 755 /data/sftp/sftpuser1
@创建可写目录(根目录不可写入)
#mkdir /data/sftp/sftpuser1/upload
#chown sftpuser1:sftp /data/sftp/sftpuser1/upload
#chmod 755 /data/sftp/sftpuser1/upload

@修改SSH服务配置文件
#vi /etc/ssh/sshd_config
找到如下这行,用#符号注释掉,大致在文件末尾处。
# Subsystem      sftp    /usr/libexec/openssh/sftp-server
在文件最后面添加如下几行内容,然后保存。
Subsystem      sftp    internal-sftp
Match Group sftp
ChrootDirectory /data/sftp/%u
ForceCommand    internal-sftp
AllowTcpForwarding no
X11Forwarding no

@重启SSH服务
#service sshd restart

@常见错误:
===========================
problem:
/var/log/messages
error: Could not get shadow information for root

solution:
/etc/ssh/sshd_config
UsePAM yes
==================================
problem:
/var/log/secure
Accepted password for test from 182.92.214.3 port 14153 ssh2
pam_unix(sshd:session): session opened for user test by (uid=0)
syslogin_perform_logout: logout() returned an error
[root@client ~]# ssh test@hostname
test@hostname’s password:
login: Permission denied
Connection to hostname closed.

solution:
UseLogin no
===================================
problem:
Write failed: Broken pipe
solution:
错误的目录权限设定会导致在log中出现”fatal: bad ownership or modes for chroot directory XXXXXX”的内容

目录的权限设定有两个要点:
1、由ChrootDirectory指定的目录开始一直往上到系统根目录为止的目录拥有者都只能是root
2、由ChrootDirectory指定的目录开始一直往上到系统根目录为止都不可以具有群组写入权限
===================================
只允许sftp用户用密码登录
Match Group sftp后面增加:
PasswordAuthentication yes

Linux 系统挂载数据盘

1、查看数据盘

在没有分区和格式化数据盘之前,使用 “df –h”命令,是无法看到数据盘的,可以使用“fdisk -l”命令查看。

2、 对数据盘进行分区

执行“fdisk  /dev/xvdb”命令,对数据盘进行分区;

根据提示,依次输入“n”,“p”“1”,两次回车,“wq”,分区就开始了,很快就会完成。

3、 查看新的分区

使用“fdisk -l”命令可以看到,新的分区xvdb1已经建立完成了。

4、格式化新分区

以ext3为例:使用“mkfs.ext3 /dev/xvdb1”命令对新分区进行格式化,格式化的时间根据硬盘大小有所不同。

(也可自主决定选用其它文件格式,如ext4等)

5、添加分区信息

使用“echo ‘/dev/xvdb1  /mnt ext3    defaults    0  0’ >> /etc/fstab”(不含引号)命令写入新分区信息。
然后使用“cat /etc/fstab”命令查看,出现以下信息就表示写入成功。

注:ubuntu12.04不支持barrier,所以正确写法是:echo ‘/dev/xvdb1  /mnt ext3    barrier=0  0  0’ >> /etc/fstab

6、挂载新分区

使用“mount -a”命令挂载新分区,然后用“df -h”命令查看,出现以下信息就说明挂载成功,可以开始使用新的分区了。

Linux 避免OOM Killer

Linux内建的保护机制会在内存耗尽时对进程进行评估,kill掉得分最高的进程。如何避免重要进程被kill掉呢?

先找到进程id,然后执行以下命令:

echo -17 > /proc/[pid]/oom_adj

-17是最低的一个值,可确保不会被kill。而/proc/[pid]/oom_score可显示这个进程的”Out Of Memory”得分。

修改PuTTY v0.65源码以支持密码保存

PuTTY为安全考虑不支持保存会话中的密码。有时候还是会有密码保存的需求。这里提供的是最新版本0.65的修改方法:

这个保存到注册表的,明文保存,有一定风险,慎用。

winhelp.h
#define WINHELP_CTX_connection_username “connection.username:config-username”
后增加
#define WINHELP_CTX_connection_password “connection.password:config-password”

setting.c
X(STR, NONE, username) \
后增加
X(STR, NONE, password) \


write_setting_s(sesskey, “UserName”, conf_get_str(conf, CONF_username));
后增加
write_setting_s(sesskey, “PassWord” , conf_get_str(conf, CONF_password));

gpps(sesskey, “UserName”, “”, conf, CONF_username);
后面增加:
gpps(sesskey, “PassWord” , “” , conf, CONF_password);

config.c

ctrl_editbox(s, “Auto-login username”, ‘u’, 50,
HELPCTX(connection_username),
conf_editbox_handler, I(CONF_username), I(1));
后增加
c = ctrl_editbox(s, “Auto-login password”, ‘w’, 50,
HELPCTX(connection_password),
conf_editbox_handler, I(CONF_password), I(1));
c->editbox.password = 1;
ssh.c
找到
Plain old password authentication
在其后的变量定义后面增加
char *pwd;
pwd = conf_get_str(ssh->conf, CONF_password);
if (strlen(pwd)==0){

然后在其后的注释段Send the password packet前增加:
}else{
s->password = dupstr(pwd);
}

修改版本号:在version.h里修改TEXTVER的值即可。

官方下载的源代码 修改后的源代码