0%

参考: SSH使用密钥登录并禁止口令登录实践

原文比较详细, 本文只是摘抄适合自己的操作

生成密钥对(适用于之前没有密钥对的情况)

1
2
# 可用-C添加备注
ssh-keygen -t rsa

拷贝公钥到服务器上

1
2
# 可用-p指定ssh端口
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.123

编辑sshd_config文件

1
2
3
4
5
6
7
8
9
10
11
# 可以用vi或nano
nano /etc/ssh/sshd_config

# 修改以下设置
# 禁用密码验证
PasswordAuthentication no
# 启用密钥验证
RSAAuthentication yes
PubkeyAuthentication yes
# 指定公钥数据库文件
AuthorizedKeysFile .ssh/authorized_keys

重启ssh服务

重启SSH服务前建议多保留一个会话以防不测

1
2
3
4
5
6
# RHEL/CentOS系统
service sshd restart
# ubuntu系统
service ssh restart
# debian系统
/etc/init.d/ssh restart

cpu单核性能

sysbench --test=cpu run 时间越短, 性能越高
附: cpu单线程天梯表
参考: 云服务器的单核心性能都很低么?

磁盘连续读写性能

该测试会在当前目录创建一个test.dd文件, 其中块大小为8k, 文件大小为1G.

写入
dd bs=8k count=128k if=/dev/zero of=test.dd

无缓存写入
dd bs=8k count=128k if=/dev/zero of=test.dd conv=fdatasync
conv=fdatasync表示立即写入到磁盘, 这样不通过系统缓存, 更能反应出真实的磁盘写入速度.

读取
dd bs=8k count=128k of=/dev/null if=test.dd
参考: 正确的使用dd进行磁盘读写速度测试

apt:
apt -o Acquire::http::proxy="http://192.168.1.222:4411/" install dotnet-sdk-2.1.101

yum:
配置文件/etc/yum.conf里增加一行proxy=http://192.168.1.222:4411, 用完删掉.

这里写一下适合自己环境的ASP.NET Core 2.0程序部署步骤

  • 安装 .NET Core Windows Server 托管捆绑包

    需要VC2015的运行库, 提前装好
    Windows Server 2008还要装个补丁(KB2533623)
    装完重启系统或者net stop was /y & net start w3svc

  • 正常创建网站, 唯一的不同处就是: 应用程序池.net版本改为无托管代码

  • 启动网站

附:

  1. 微软关于IIS下部署的原文
  2. 最新版.NET Core Windows Server 托管捆绑包官网链接
  3. KB2533623补丁下载地址

需要系统安装python
Windows下使用Visual Studio编译时的配置参数如下:
动态链接库, 只编译Release版, 开源许可证, 不编译examples, tests, 不包含qtwebview, qtwebengine等一些用不到的内容

生成makefile:

1
2
3
4
5
6
configure -prefix D:\Qt\Qt5 -shared -release -force-debug-info -silent -nomake tests -nomake examples -skip qtwebview -skip qtwebengine -skip qtwebsockets -skip qtwebchannel -skip qtwayland -skip qtvirtualkeyboard -skip qtwebglplugin -skip qtquickcontrols -skip qtquickcontrols2 -skip qtscript -skip qtsensors -skip qtserialbus -skip qtserialport -skip qtgamepad -skip qtandroidextras -skip qtmacextras -skip qtx11extras -skip qtdatavis3d -skip qtpurchasing -skip qt3d -skip qtspeech -skip qtdeclarative -confirm-license -opensource -platform win32-msvc -make-tool jom
```
`-skip选项的参数是Qt源码下的目录名`
`D:\Qt\Qt5是安装目录, 也就是install的位置`

多线程编译:

jom -j6

1
2

安装到设置的目录

jom install

```

jom是Qt出的针对nmake的一个工具, 可以支持多线程编译, 可以自定义线程数, 例如-j6表示6个线程同时编译
当然在configure的时候加个-mp可以使用nmake自己的多线程编译, 但是我记得-mp使用的是CPU的线程数, 那样编译时就不能干别的事情了.

不是前端专业, 奔着学习的目的弄个网站练手.
后来不玩了, 想着删掉节省空间.
结果, 那个node_modules文件夹, 里面成千上万个目录啊, 文件啊.
固态硬盘都一直删不完, 那么小个项目, 要这么多文件吗?
搞不懂是什么原理.

网上看别人说macOS下面删除很快, Windows下就是这么慢, 不知道是不是真的.
即使macOS下删除很快, 这么多文件也太多了吧.
果然, 前端基本都用Mac是有道理的.

找到一个快速删除的办法: rmdir /s /q node_modules, 看来可能是Windows文件资源管理器的删除有点问题.

snipaste_20171108_004250.png
snipaste_20171108_005153.png

本身对数据库只是会用, 原理不太懂.
今天一个60多G的库要清掉一些历史数据, 这些数据占据了50多个G.
清理很简单直接truncate table就行了.
由于SSD空间不是很足, 因此要收缩下数据库减少下占用的磁盘空间.
执行收缩时发现一直转圈圈, 通过知乎的一个提问知道了有些事务没操作完.
于是暂停所有对数据库的操作, 果然, 瞬间就收缩完成了.

一些大型业务肯定不能暂停操作, 怎么处理就不知道了.

查看msdn原文

关键点就是:

配置文件中将连接字符串的名称设置为派生类(派生自DbContext)的名称, 就可以自动使用该连接字符串.
或者以name=connectionstringname的形式在构造函数中提供.
之前一直用的后者, 看来用前者还是比较方便的.
好像还说了连接字符串和Entity Framework模式的内容, 不过我只用code first模式, 暂时没去看, 感兴趣的可以看看.