Quantum Espresso 安装步骤

首先确保你电脑安装了gfortran和mpi文件
1.编译前先安装gfortran
sudo apt-get install build-essential gcc gfortran

然后自动配置
$ ./configure

然后编译
$ make all

2.并行编译
先安装并行编译器和并行编译库openmpi,
sudo apt-get install openmpi-bin
然后
$ ./configure
$ make all

3.编译测试QE
把QE文件夹拷到home下,然后执行下面的语句。其中需要一些相关的附件文件夹,已经在QE压缩包里了,可以直接用。

cd QE/
ls
cd espresso-5.0.1/
ls
./configure -enable-mpi=yes
make install
make all

过上十几分钟基本上就可以进行测试成功了。

linux计划任务crontab例子

/root/send_msg.sh #要自动执行的脚本程序路径

chmod +x /root/send_msg.sh #对脚本文件添加执行权限,否则不能执行

vim /etc/crontab #编辑配置文件,在最后一行添加内容

30 1 * * * root /root/send_msg.sh #表示每天凌晨1点30执行备份

:wq! #保存退出

service crond restart / service crond reload #重启/重载配置文件

crontab文件的格式:

minute hour day month weekday username command
minute:分,值为0-59
hour:小时,值为1-23
day:天,值为1-31
month:月,值为1-12
weekday:星期,值为0-6(0代表星期天,1代表星期一,以此类推)
username:要执行程序的用户,一般设置为root
command:要执行的程序路径(设置为绝对路径)例如:/root/send_msg.sh
附:crontab规则详细实例

CentOS下安装build-essential,gcc,gfortran/g77编译器

安装完成gcc后发现 gcc -v 和g++ -v都能显示,唯独gfortran -v时显示 gfortran命令没有找到,说明gfortran没有安装。
命令安装如下:
(1)命令安装gcc
yum install gcc
(2)安装g++
yum install gcc-c++
结果显示gcc-c++已被成功安装,所以这样运行安装gfortran应该也不会出现问题
(3)安装gfortran
yum install gcc-gfortran
然后一路yes。。
运行gfortran -v 显示安装版本。。成功。。

补充g77的安装。。

依旧是在/media/CentOS_6.2_Final/Packages目录下:

[root@TTWORKTEAM Packages]# yum search g77
结果显示:
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
* base: mirrors.btte.net
* extras: mirrors.btte.net
* updates: mirrors.btte.net
=============================== N/S Matched: g77 ===============================
compat-gcc-34-g77.x86_64 : Fortran 77 support for compatibility compiler

Name and summary matches only, use “search all” for everything.

可以看到有一个软件包compat-gcc-34-g77.x86_64为g77编译器 ,命令安装如下:

[root@TTWORKTEAM Packages]# yum install compat-gcc-34-g77-3.4.6-19.el6.x86_64.rpm
过程显示:(一直选择Y,默认安装。。。)
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
* base: mirrors.btte.net
* extras: mirrors.btte.net
* updates: mirrors.btte.net
Setting up Install Process
Examining compat-gcc-34-g77-3.4.6-19.el6.x86_64.rpm: compat-gcc-34-g77-3.4.6-19.el6.x86_64
Marking compat-gcc-34-g77-3.4.6-19.el6.x86_64.rpm to be installed
Resolving Dependencies
–> Running transaction check
—> Package compat-gcc-34-g77.x86_64 0:3.4.6-19.el6 will be installed
–> Processing Dependency: compat-gcc-34 = 3.4.6-19.el6 for package: compat-gcc-34-g77-3.4.6-19.el6.x86_64
–> Processing Dependency: compat-libf2c-34 = 3.4.6-19.el6 for package: compat-gcc-34-g77-3.4.6-19.el6.x86_64
–> Processing Dependency: libg2c.so.0()(64bit) for package: compat-gcc-34-g77-3.4.6-19.el6.x86_64
–> Running transaction check
—> Package compat-gcc-34.x86_64 0:3.4.6-19.el6 will be installed
—> Package compat-libf2c-34.x86_64 0:3.4.6-19.el6 will be installed
–> Finished Dependency Resolution

Dependencies Resolved

================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
compat-gcc-34-g77 x86_64 3.4.6-19.el6 /compat-gcc-34-g77-3.4.6-19.el6.x86_64
5.9 M
Installing for dependencies:
compat-gcc-34 x86_64 3.4.6-19.el6 base 3.7 M
compat-libf2c-34 x86_64 3.4.6-19.el6 base 51 k

Transaction Summary
================================================================================
Install 3 Package(s)

Total size: 9.6 M
Total download size: 3.8 M
Installed size: 19 M
Is this ok [y/N]: y
Downloading Packages:
(1/2): compat-gcc-34-3.4.6-19.el6.x86_64.rpm | 3.7 MB 00:00
(2/2): compat-libf2c-34-3.4.6-19.el6.x86_64.rpm | 51 kB 00:00
——————————————————————————–
Total 7.2 MB/s | 3.8 MB 00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Warning: RPMDB altered outside of yum.
Installing : compat-gcc-34-3.4.6-19.el6.x86_64 1/3
Installing : compat-libf2c-34-3.4.6-19.el6.x86_64 2/3
Installing : compat-gcc-34-g77-3.4.6-19.el6.x86_64 3/3

Installed:
compat-gcc-34-g77.x86_64 0:3.4.6-19.el6

Dependency Installed:
compat-gcc-34.x86_64 0:3.4.6-19.el6 compat-libf2c-34.x86_64 0:3.4.6-19.el6

Complete!

安装完成,用命令g77 -v检测安装是否成功和查看安装路径。

最近服务器被无耻的人一致攻击了只能在Nginx服务器上屏蔽一些IP

估计全球的IP都在攻击我网站的xmlrpc.php,于是把这个文件屏蔽,但是还是遭到恶意攻击,实在无聊,只能屏蔽掉这些IP地址;

1.查找要屏蔽的ip;

1
awk ‘{print $1}’  /www/log/nginx/log/lanxinbase.log |sort |uniq -c |sort -n

lanxinbase.log 为蓝芯科技网站的日志文件;

 

会到如下结果,前面是ip的访问次数,后面是ip,很明显我们需要把访问次数多的ip并且不是蜘蛛的ip屏蔽掉,本例当中我们屏蔽掉:

1
2
3
4
5
6
7
1 163.172.66.70
1 164.132.161.5
1 203.208.60.203
1 220.181.108.117
1 68.180.228.100
11 118.192.151.214
195 27.10.12.69
395 191.96.249.53

2.在nginx的安装目录下面,新建屏蔽ip文件,命名为blockip.conf,以后新增加屏蔽ip只需编辑这个文件即可。 加入如下内容

1
deny 191.96.249.53;

3.在nginx的配置文件nginx.conf中加入如下配置,可以放到http, server, location, limit_except语句块,需要注意相对路径,本例当中nginx.conf,blocksip.conf在同一个目录中。

1
include blockip.conf;

4.重启一下nginx的服务:service nginx restart 就可以生效了。

 

高级用法:

屏蔽ip的配置文件既可以屏蔽单个ip,也可以屏蔽ip段,或者只允许某个ip或者某个ip段访问。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 屏蔽单个ip访问
deny IP;
# 允许单个ip访问
allow IP;
# 屏蔽所有ip访问
deny all;
# 允许所有ip访问
allow all;
#屏蔽整个段即从123.0.0.1到123.255.255.254访问的命令
deny 123.0.0.0/8
#屏蔽IP段即从123.45.0.1到123.45.255.254访问的命令
deny 124.45.0.0/16
#屏蔽IP段即从123.45.6.1到123.45.6.254访问的命令
deny 123.45.6.0/24

如果你想实现这样的应用,除了几个IP外,其他全部拒绝,
那需要你在blockip.conf中这样写

1
2
3
allow 1.1.1.1;
allow 1.1.1.2;
deny all;

单独网站屏蔽IP的方法,把include blocksip.conf; 放到网址对应的在server{}语句块,
所有网站屏蔽IP的方法,把include blocksip.conf; 放到http {}语句块。

Git 基本操作

一、安装环境
CentOS: yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel

Debian: apt-get install libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev
二、安装Git
CentOS: yum install git-core

Debian: apt-get install git-core

三、创建基础仓库
mkdir /git/test
cd /git/test

git init –bare –shared //初始化基础仓库

四、客户端操作
git clone root@192.168.1.199:/git/test //克隆仓库

然后复制文件到 test 目录

git add * //添加所有文件
git commit -m “初始化版本”
git push //推送到服务器上
五、其他
git add [*|file] //将该文件添加到缓存
git log [–oneline] //使用 git clone 拷贝一个 Git 仓库到本地,让自己能够查看该项目,或者进行修改。
git diff [file name][–cached] //执行 git diff 来查看执行 git status 的结果的详细信息。
git clone [url] //使用 git clone 拷贝一个 Git 仓库到本地,让自己能够查看该项目,或者进行修改。
git init //用 git init 在目录中创建新的 Git 仓库。 你可以在任何时候、任何目录中这么做,完全是本地化的。
git status //查看在你上次提交之后是否有修改。
git commit [-am] //将缓存区内容添加到仓库中。
git reset HEAD //用于取消已缓存的内容。
git rm [filename] //会将条目从缓存区中移除
git mv [filename] //命令做得所有事情就是 git rm –cached 命令的操作

1234515