新工作接触到HPC高性能计算项目,最近看了一些HPC高性能计算的理论资料,今天搭建MPICHI 并行计算环境,算是开始HPC的学习之路吧!
mailx 发送邮件小计
安装postfix服务
yum install postfix
/etc/init.d/postfix start
chkconfig postfix on
发送格式
mailx -s subject user@xxx.com < message_file
echo “内容” | mailx -s “邮件标题” user@xxx.com
其他选项
-r 指定发件人
-c 指定抄送人
-b 指定密送人
多个收件人使用逗号分隔
有些邮箱(如qq邮箱)会当成垃圾邮件拦截,日志中可以看到500错误
SSH 奇淫技巧之隧道模式
用了ssh这么久,今天才知道ssh还有这么强大的功能,穿透内外网,来去自如;其实最重要的还是方便平时工作中的调试,在此简单的记录一下。
使用条件
一台拥有ssh端口连接的外网linux服务器
本地转发
场景:公网有一台服务器的公网ip,ssh端口(已修改为2012)没有对外开放,本地想直接连接此端口,可以通过公网一台开放ssh端口的服务器跳转过去ssh -p 2012 -CNg -L 2222:namenode:2012 nsxq@1.2.3.4
将namenode服务器的2012端口通过1.2.3.4服务器映射到本地2222端口 ssh -p 2222 localhost 即可连接
-p 指定跳转机端口
-L 本地转发
远程转发
场景:本地开发环境需要被外网访问,之前一直使用花生壳,ngrok之类的程序;现在只需要本地执行一条ssh命令,将本地的端口映射到一台外网的服务器上去
将本地内网192.168.1.5:80 映射到1.2.3.4服务器的8888端口,访问1.2.3.4:8888 即可访问192.168.1.5:80 内容ssh -p 2012 -CNfg -R 0.0.0.0:8888:192.168.1.5:80 nsxq@1.2.3.4
打开1.2.3.4服务器需要sshd_config 配置中的GatewayPorts yes
记得顺手打开防火墙端口
-p 指定跳转机端口
-R 远程转发ssh -CNfg -R 0.0.0.0:3306:10.71.36.123:3306 dczf@10.71.36.121
在10.71.36.123上执行此命令,将10.71.36.123的3306映射到10.71.36.121的3306端口
动态转发
场景:相对于上边两种单一端口转发,此功能就是在本地启动一个端口,其他机器可以设置代理,通过此端口进行流量转发(俗称翻墙)。ssh -D 5000 nsxq@1.2.3.4
我这里没有能上google的服务器,没法测试,按道理来说,其他机器就可以将代理设置为1.2.3.4:5000 进行商上网了
参考资料
[实战ssh端口转发]http://www.ibm.com/developerworks/cn/linux/l-cn-sshforward/
[SSH的三种端口转发(Port forwarding)/ 隧道协议概要]https://blog.twofei.com/528/
给下拉菜单和鼠标右键截图
使用阿里云Docker镜像库加速
开发者账号
由于docker官方的镜像下载太慢了,于是开通了阿里云的开发者账号;
申请开发者账号
http://console.d.aliyun.com/join.htm?spm=0.0.0.0.Xx1dX0#/docker/booster
本人的专属加速器地址
https://4c2kkvb9.mirror.aliyuncs.com
阿里云docker镜像搜索地址:
https://cr.console.aliyun.com/#/imageSearch
阿里云docker加速器
使用加速器将会提升您在国内获取Docker官方镜像的速度!
https://cr.console.aliyun.com/#/accelerator
加速器操作文档
安装或升级Docker
您可以通过阿里云的镜像仓库下载:**mirrors.aliyun.com/help/docker-engine**
1 | curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh - |
配置Docker加速器
您可以使用如下的脚本将mirror的配置添加到docker daemon的启动参数中。
系统要求 CentOS 7 以上,Docker 1.9 以上。
1 | cp -n /lib/systemd/system/docker.service /etc/systemd/system/docker.service |
QA
Q: docker pull 时候报错“ x509: certificate has expired or is not yet valid”
A: 此问题是由于主机的时间不同步造成的,使用ntpdate cn.ntp.org.cn 同步网络时间即可。
使用kubernetes 1.4 新特性kubeadm创建集群
背景
kubernetes 发布的最新版本1.4,增加了很多新特性,据说只用两条命令就可以创建一个k8s集群,比起之前的搭建起来简单很多。
[官方文档][** http://kubernetes.io/docs/getting-started-guides/kubeadm/ **]
CentOs 7 firewalld 防火墙无法启动
CentOs 7 无法启动,提示“Job for firewalld.service failed because a timeout was exceeded. See “systemctl status firewalld.service” and “journalctl -xe” for details.”
Jumpserver跳转机搭建过程中的疑问
Xshell 使用技巧
Xshell 是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议。Xshell 通过互联网到远程主机的安全连接以及它创新性的设计和特色帮助用户在复杂的网络环境中享受他们的工作。Xshell可以在Windows界面下用来访问远端不同系统下的服务器,从而比较好的达到远程控制终端的目的。
常用命令集合
Windows
进程查看
1 | netstat -ano |findstr “8080” #查看端口及PID |
查看文件被哪个进程占用
1 | 打开资源管理器-CPU-关联的句柄-输入文件名称 |
映射网络驱动器
1 | net use Z: \\192.168.0.x\share /user:username password |
桌面图标设置
添加计算机图标到桌面
1 | rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,0 |
查看系统启动时间
1 | systeminfo|find "系统启动时间" |
查看硬盘序列号
1 | wmic diskdrive get model,serialnumber |
常用快捷命令
1 | winver # 查看操作版本信息 |
网络与共享中心
1 | control.exe /name Microsoft.NetworkAndSharingCenter |
修复网络连接错误
1 | cmd |
查看wifi密码
1 | #显示您之前连接的所有 Wi-Fi 网络接口 |
Windows下查看文件MD5值
1 | certutil -hashfile filename MD5 |
同时ping+telnet
从网上( https://www.elifulkerson.com/projects/tcping.php )下载一个tcping.exe放置”C:\Windows\System32”目录中
1 | 持续测试一个端口的连通性 |
curl 下载文件
1 | --continue-at(-C)断点续传下载 |
Linux
free
查看内存使用情况
可用内存=free+buffers+cached
以用内存=used-buffers-cached
所以看内存的使用不要看used 和free ,看 -/+ buffers/cache 就可以了
查看内存插槽数
1 | dmidecode|grep -P -A5 "Memory\s+Device"|grep Size|grep -v Range |
查看内存最大容量
1 | dmidecode | grep -P 'Maximum\s+Capacity' |
查看内存频率
1 | dmidecode|grep -A16 "Memory Device"|grep 'Speed' |
iostat
查看磁盘性能
iostat -x 1 5
%util 接近100%的时候,产生 的I/O 请求太多,I/O 系统已经满负荷,该磁盘可能存在瓶颈
%idle 小于70%的时候,I/O 的 压力比较大,说明读取中有很多的wait
du
查看系统目录占用空间大小
在根目录下执行
1 | du -hsx * |sort -rh |head -10 |
推荐一款速度更快的工具ncdu
uptime
查看cpu的负载
每cpu的核心当前活动进程数不大于3,表示性能良好,大于五表示严重。
物理CPU数
1 | cat /proc/cpuinfo | grep "physical id" | sort | uniq |
单个CPU的逻辑核心数量
1 | cat /proc/cpuinfo | fgrep "cores" | uniq |
系统CPU线程数
1 | cat /proc/cpuinfo | grep "processor" | wc -l |
线程数=物理cpu数x单个逻辑cpu核心数,表示没有开启多线程
dd
瞬间创建(1T)大文件
1 | dd if=/dev/zero of=file bs=1G seek=1024 count=0 |
这个文件用ll -h 看着是1TB的,用du -sh 看着是空文件,随着写入的数据而增长
dd制作ISO镜像
1 | dd if=/dev/cdrom of=/mnt/cd1.iso |
shopt
选择性删除文件
1 | shopt -s extglob 打开 |
dstat
监控系统状态
1 | alias dstat='dstat -cdlmnpsy' |
iftop
n 显示ip/主机名
p 显示端口
l 输入过滤内容
http://www.vpser.net/manage/iftop.html
网卡灯闪烁
1 | ethtool -p eth0 |
查找局域网ip地址冲突
1 | #在局域网其他机器检测目标主机,不能在本机arping检验自己的ip |
查看wifi密码
1 | netsh wlan show profile |
查询当前网络公网ip
1 | curl ipinfo.io |
给ping加上时间信息
1 | ping <ip_address> | awk '{ print $0"\t" strftime("%Y-%m-%d %H:%M:%S",systime())}' |
vim对比编辑工具
1 | # 光标移动 |
top监控进程
1 | top -bc |grep [进程名] |
终端快捷键
1 | ctrl + a 移动光标到行首 |
