技术相关实践记录

来源:互联网 发布:会计常用电脑软件 编辑:程序博客网 时间:2024/05/16 11:48

centos 7

修改ip

文件地址: 

/etc/sysconfig/network-scripts/ifcfg-你的网卡(通过ifconfig查看)

修改一下部分:

BOOTPROTO=static #修改成静态

``````

#以下是添加的配置

ONBOOT=yes #开启时启动

IPADDR=192.168.9.7

重新启动网络服务:

service network restart (建议分成:service network stop,service network start 两步操作)

查看修改结果,通过ifconfig查看

如果是使用虚拟主机,要使用xshell等工具连接,需要将网络改成桥接状态

关闭防火墙:

centos7+ :  systemctl stop firewalld.service 

centos7- : service iptables stop

centos7+:开启某个端口 firewall-cmd --zone=public --add-port=9010/tcp --permanent

使用Xshell连接CENTOS7 NAT模式连接

首先查看有没有安装openssh-server服务,如果没有安装挂载Centos7 光盘,在Packages保重查找openssh-server安装文件,进行安装

具体步骤:

首先保证你的CD中有Centos光盘

cd / #切换到根目录

mkdir cdrom #创建等会儿光盘挂载的目录文件夹

cd /dev #切换到设备

mount cdrom /cdrom #讲cdrom挂载当刚刚创建的文件夹

cd /cdrom/Packages #进入Packages包中

ls | grep openssh-server* #过滤出openssh-server的文件

复制出你的本机目录,使用rpm -ivh 软件包 安装即可

cp openssh-server-6.6.1p1-31.el7.x86_64.rpm /softwares # softwares是我自己在根目录创建的一个专门存放软件的包

cd /softwares

rpm -ivh openssh-server-6.6.1p1-31.el7.x86_64.rpm

cd /etc/ssh # 到安装好的ssh目录

vi sshd_config #变价sshd_config文件,注意不是 ssh_config

打开以下行(即把#去掉):

Port 22

ListenAddress 0.0.0.0

ListenAddress ::

PermitRootLogin yes

PasswordAuthentication yes

改完之后保存退出

查看sshd服务状态

service sshd status

可以看看22端口有没有开,验证一下ssh服务有没有开启

netstat -ano | grep 22

重启sshd服务

systemctl restart sshd.service

如果希望开机就启动sshd服务,可以这样操作:

systemctl enable sshd

查看有没有设置成功开机启动sshd服务

systemctl list-unit-files | grep sshd

如果你是虚拟机,需要查看你的虚拟网卡的ip是否和你虚拟的机器在同一网段,如果不是请修改

例如你的虚拟机ip为192.193.32.34 你的虚拟网卡就必须改成192.193.32.0

如果连接不上,请查看防火墙状态(systemctl status firewalld),如果是启动的,请关闭:systemctl stop firewalld,如果想永久关闭,请systemctl disable firewalld,即可连接上


查找文件中的指定内容

grep --color=auto "要查找的目标内容" 文件
find 文件所在目录 -name 文件 -print |xargs grep --color=auto '要查找的目标内容'
find 文件所在目录 -type f -name 文件 | xargs grep --color=auto "要查找的目标内容"
cat  文件 | grep 要查找的目标内容 #用不用引号都行
在多个文件中查找指定内容:
grep '你要查找的内容' 文件1 文件2
grep '你要查找的内容' 文件通配符

查看最后几行:

tail -n 200 文件名

Linux日志查看技巧

先必须了解两个最基本的命令:
tail  -n  10  test.log   查询日志尾部最后10行的日志;
tail -n +10 test.log    查询10行之后的所有日志;
head -n 10  test.log   查询日志文件中的头10行日志;
head -n -10  test.log   查询日志文件除了最后10行的其他所有日志;

场景1: 按行号查看---过滤出关键字附近的日志
因为通常时候我们用grep拿到的日志很少,我们需要查看附近的日志.
<1>首先: cat -n test.log |grep "Goods"  得到关键日志的行号
<2>得到"Goods"关键字所在的行号是102行. 此时如果我想查看"Goods"关键字前10行和后10行的日志:
cat -n test.log |tail -n +92|head -n 20  [没有grep了]
解释:
tail -n +92表示查询92行之后的日志
head -n 20 则表示在前面的查询结果里再查前20条记录

场景2:那么按日期怎么查呢?  通常我们非常需要查找指定时间端的日志
sed -n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p'  test.log
特别说明:上面的两个日期必须是日志中打印出来的日志,否则无效.

关于日期打印,可以先 grep '2014-12-17 16:17:20' test.log 来确定日志中是否有该时间点,这个根据时间段查询日志是非常有用的命令.

如果我们查找的日志很多,打印在屏幕上不方便查看, 有两个方法:
(1)使用more和less命令, 如: cat -n test.log |grep "Goods" |more  这样就分页打印了,通过点击空格键翻页
(2)使用 >xxx.txt 将其保存到文件中,到时可以拉下这个文件分析.如:
cat -n test.log |grep "Goods"  >xxx.txt


安装图形界面

1.运行命令:
yum groupinstall "X Window System" 
2.运行完成之后,运行 
yum grouplist 
查看可用的环境组Available Environment Groups, 这里面列出的都可以安装
3.如果有 GNOME Desktop 使用
yum groupinstall "GNOME Desktop" 
就可以安装了
4.安装完成后
startx

即可启动图形界面或者改变默认启动为图形界面也可以


图形界面安装完之后,一些附属工具也可以使用了

yum install、wget、vim ,gcc(可以编译)······

安装Redis:

到redis官网下载页面,有Install:
wget http://download.redis.io/releases/redis-3.2.7.tar.gz
tar xzf redis-3.2.7.tar.gz
cd redis-3.2.7
make
依次执行,最后一步为编译,编译成功后就安装好了.
测试编译有没有错:
cd src
make test
(tcl如果缺失,请安装,yum install tcl)

Redis命令在/usr/local/bin/中

启动Redis:./redis-server

连接redis:./redis-cli


安装Nginx:

下载nginx安装包
解压 : tar xvf 安装包名
配置 : ./configure --with-pcre=/nginx所在目录/nginx-1.11.9/auto/lib/pcre --with-zlib=/nginx所在目录/nginx-1.11.9/auto/lib/zlib
启动Nginx:   ./usr/local/nginx/sbin/nginx
为了方便,可以把启动脚本复制到你的nginx目录: cp /usr/local/nginx/sbin/nginx 你的目录
停止nginx:    ./usr/local/nginx/sbin/nginx -s stop

安装MySql:

(

解决centos7中没有mysql的问题,如果你的机器上有的话,略过

安装mysql源:

wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm #下载安装文件

安装 rpm -ivh mysql-community-release-el7-5.noarch.rpm

此时mysql源已经安装好

)

安装MySql:

yum install -y mysql-server

启动MySql:

systemctl start  mysqld.service

可以更改一下Mysql的root密码,默认是没有密码的.

mysql  #启动Mysql

use mysql; #使用mysql数据库

update user set password=password('123456') where user='root'; #更改密码

exit; #退出mysql数据库

也可以这样更改:

mysqladmin -u root password '123456'

登录:

mysql -u root -p

输入密码即可登录成功

登录mysql后:

grant all privileges on *.* to 'root'@'%' identified by 'mysql' with grant option; # "%"表示任何主机都可以远程登录到该服务器上访问。如果要限制只有某台机器可以访问,将其换成相应的IP即可

flush privileges;


卸载MySql:

yum remove -y mysql-server mysql mysql-devel

find / -name mysql #找到所有与mysql相关的目录,

rm -rf 掉

CentOS连接网络:

首先需要用 nmtui 命令进入 Network Manager
选择 Edit a connection 来配置你的网络连接
选择IPv4 CONFIGURATION为Automatic,并且勾选Automatically connect选项。
最后返回命令行,输入:
service network restart
来重新网络服务,此时就可以正常连接网络了


yum出现的网络地址解析不了的问题解决

首先检查网络是否可以连接上,如上不能连接上看上面的内容

看看yum源国内是否能访问,还是建议使用阿里的或者163的

如果出现解析的问题,是DNS未配置,在网卡中配置就行

vi /etc/sysconfig/network-scripts/ifcfg-你的网卡  看看有没有DNS如果没有可以这样配置,加两个DNS:

DNS1=8.8.8.8
DNS2=8.8.4.4

需要检查 /etc/resolv.conf 文件中有无dns,如果没有徐相应配置,内容大致如下,每台机子环境不一样:

# Generated by NetworkManager
search localdomain
nameserver 192.168.9.2
nameserver 8.8.8.8
nameserver 8.8.4.4

启动网卡

如果某一块网卡启动不了,先查看日志:

cat /var/log/messages | grep network

会看到以下类似的错误:

Feb  9 22:05:32 localhost network: ERROR    : [/etc/sysconfig/network-scripts/ifup-eth] Error adding address 1O.33.2.256 for ens33.Feb  9 22:05:32 localhost /etc/sysconfig/network-scripts/ifup-eth: Error adding address 1O.33.2.256 for ens33.


使用ip addr 查看对应网卡mac地址:

我获取的mac地址是:00:0c:29:1d:7b:19

编辑ifcfg-你的网卡 文件

vi /etc/sysconfig/network-scripts/ifcfg-你的网卡

添加如下行:

HWADDR=00:0c:29:1d:7b:19   #此处的值就是你刚刚获取的对应的网卡的mac地址

在网上学到的,据说可以看wifi密码[Windows]:

netsh wlan show profiles
netsh wlan show profile profile_name key = clear

nginx基本配置与参数说明

转载地址:http://www.nginx.cn/76.html


#运行用户user nobody;#启动进程,通常设置成和cpu的数量相等worker_processes  1;#全局错误日志及PID文件#error_log  logs/error.log;#error_log  logs/error.log  notice;#error_log  logs/error.log  info;#pid        logs/nginx.pid;#工作模式及连接数上限events {    #epoll是多路复用IO(I/O Multiplexing)中的一种方式,    #仅用于linux2.6以上内核,可以大大提高nginx的性能    use   epoll;     #单个后台worker process进程的最大并发链接数        worker_connections  1024;    # 并发总数是 worker_processes 和 worker_connections 的乘积    # 即 max_clients = worker_processes * worker_connections    # 在设置了反向代理的情况下,max_clients = worker_processes * worker_connections / 4  为什么    # 为什么上面反向代理要除以4,应该说是一个经验值    # 根据以上条件,正常情况下的Nginx Server可以应付的最大连接数为:4 * 8000 = 32000    # worker_connections 值的设置跟物理内存大小有关    # 因为并发受IO约束,max_clients的值须小于系统可以打开的最大文件数    # 而系统可以打开的最大文件数和内存大小成正比,一般1GB内存的机器上可以打开的文件数大约是10万左右    # 我们来看看360M内存的VPS可以打开的文件句柄数是多少:    # $ cat /proc/sys/fs/file-max    # 输出 34336    # 32000 < 34336,即并发连接总数小于系统可以打开的文件句柄总数,这样就在操作系统可以承受的范围之内    # 所以,worker_connections 的值需根据 worker_processes 进程数目和系统可以打开的最大文件总数进行适当地进行设置    # 使得并发总数小于操作系统可以打开的最大文件数目    # 其实质也就是根据主机的物理CPU和内存进行配置    # 当然,理论上的并发总数可能会和实际有所偏差,因为主机还有其他的工作进程需要消耗系统资源。    # ulimit -SHn 65535}http {    #设定mime类型,类型由mime.type文件定义    include    mime.types;    default_type  application/octet-stream;    #设定日志格式    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '                      '$status $body_bytes_sent "$http_referer" '                      '"$http_user_agent" "$http_x_forwarded_for"';    access_log  logs/access.log  main;    #sendfile 指令指定 nginx 是否调用 sendfile 函数(zero copy 方式)来输出文件,    #对于普通应用,必须设为 on,    #如果用来进行下载等应用磁盘IO重负载应用,可设置为 off,    #以平衡磁盘与网络I/O处理速度,降低系统的uptime.    sendfile     on;    #tcp_nopush     on;    #连接超时时间    #keepalive_timeout  0;    keepalive_timeout  65;    tcp_nodelay     on;    #开启gzip压缩    gzip  on;    gzip_disable "MSIE [1-6].";    #设定请求缓冲    client_header_buffer_size    128k;    large_client_header_buffers  4 128k;    #设定虚拟主机配置    server {        #侦听80端口        listen    80;        #定义使用 www.nginx.cn访问        server_name  www.nginx.cn;        #定义服务器的默认网站根目录位置        root html;        #设定本虚拟主机的访问日志        access_log  logs/nginx.access.log  main;        #默认请求        location / {                        #定义首页索引文件的名称            index index.php index.html index.htm;           }        # 定义错误提示页面        error_page   500 502 503 504 /50x.html;        location = /50x.html {        }        #静态文件,nginx自己处理        location ~ ^/(images|javascript|js|css|flash|media|static)/ {                        #过期30天,静态文件不怎么更新,过期可以设大一点,            #如果频繁更新,则可以设置得小一点。            expires 30d;        }        #PHP 脚本请求全部转发到 FastCGI处理. 使用FastCGI默认配置.        location ~ .php$ {            fastcgi_pass 127.0.0.1:9000;            fastcgi_index index.php;            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;            include fastcgi_params;        }        #禁止访问 .htxxx 文件            location ~ /.ht {            deny all;        }    }}

nginx location 匹配示例


location  = / {  # 只匹配"/".  [ configuration A ] }location  / {  # 匹配任何请求,因为所有请求都是以"/"开始  # 但是更长字符匹配或者正则表达式匹配会优先匹配  [ configuration B ] }location ^~ /images/ {  # 匹配任何以 /images/ 开始的请求,并停止匹配 其它location  [ configuration C ] }location ~* .(gif|jpg|jpeg)$ {  # 匹配以 gif, jpg, or jpeg结尾的请求.   # 但是所有 /images/ 目录的请求将由 [Configuration C]处理.     [ configuration D ] }


nginx 配置反向代理

转载地址:http://www.cnblogs.com/sixiweb/p/3988805.html

环境:

nginx1:192.168.68.41tomcat1:192.168.68.43tomcat2:192.168.68.45

配置案例:

#负责压缩数据流gzip              on;  gzip_min_length   1000;  gzip_types        text/plain text/css application/x-javascript;#设定负载均衡的服务器列表#weigth参数表示权值,权值越高被分配到的几率越大upstream hello{    server 192.168.68.43:8080 weight=1;    server 192.168.68.45:8080 weight=1;            }   server {    #侦听的80端口    listen       80;    server_name  localhost;    #设定查看Nginx状态的地址    location /nginxstatus{         stub_status on;         access_log on;         auth_basic "nginxstatus";         auth_basic_user_file htpasswd;    }    #匹配以jsp结尾的,tomcat的网页文件是以jsp结尾    location / {        index index.jsp;        proxy_pass   http://hello;    #在这里设置一个代理,和upstream的名字一样        #以下是一些反向代理的配置可删除        proxy_redirect             off;         #后端的Web服务器可以通过X-Forwarded-For获取用户真实IP        proxy_set_header           Host $host;         proxy_set_header           X-Real-IP $remote_addr;         proxy_set_header           X-Forwarded-For $proxy_add_x_forwarded_for;         client_max_body_size       10m; #允许客户端请求的最大单文件字节数        client_body_buffer_size    128k; #缓冲区代理缓冲用户端请求的最大字节数        proxy_connect_timeout      300; #nginx跟后端服务器连接超时时间(代理连接超时)        proxy_send_timeout         300; #后端服务器数据回传时间(代理发送超时)        proxy_read_timeout         300; #连接成功后,后端服务器响应时间(代理接收超时)        proxy_buffer_size          4k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小        proxy_buffers              4 32k; #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置        proxy_busy_buffers_size    64k; #高负荷下缓冲大小(proxy_buffers*2)        proxy_temp_file_write_size 64k; #设定缓存文件夹大小,大于这个值,将从upstream服务器传    }}

IntelliJ Idea Spring配置文件(eg,applicationContext.xml,dataSource.xml)报错处理

top level element is not completed
这个如果你的xml真的写得没有问题,就是你的intellij idea设置原因,解决方法:
进入intellij idea的设置页面(可以使用快捷键:ctrl + alt + s),在搜索栏中搜索un-in,将右面板出现的Un-inject Language/Reference打上勾
会到出错的xml文件处, 使用快捷键 alt + enter 键,选择Un-inject Language/Reference即可,错误消除

如果相关的配置值有报红

使用快捷键 alt + enter 键,选择Inspection 'Spring Model' options --> Disable Inspection


IntelliJ Idea File Types 配置

*.gitattributes;*.gitignore;*.hprof;*.iml;*.pyc;*.pyo;*.rbc;*.yarb;*~;.DS_Store;.git;.hg;.idea;.svn;CVS;RCS;SCCS;__pycache__;_svn;rcs;target;vssver.scc;vssver2.scc;.classpath;.project;.settings;bins;

Maven jar依赖失效

在2天前,开发的时候就发现接口jar的实现到不了具体的实现类,检查pom依赖,发现都OK,也没有什么问题,找了半天。因为pom中的版本都是变量,所以我就想是不是缓存,变量没有变过来,我清理了IntelliIdea和MavenInstall的缓存,发现依旧不行。最后我干脆,去掉变量,使用常量,即明着写,使其先强依赖上,结果是行的,之后我改回变量的形式,发现OK了......


IntelliJIdea快捷键自动生成 serialVersionUID

Setting->Inspections->Serialization issues->Serializable class without ’serialVersionUID’ 
选上以后,在你的class中:Alt+Enter就会提示自动创建serialVersionUID了
0 0