linux常用笔记整理

  1. 云栖社区>
  2. 博客>
  3. 正文

linux常用笔记整理

技术小甜 2017-11-09 18:08:00 浏览760
展开阅读全文

1、快速修改网卡配置文件

############################修改网卡配置文件#####################
DEVICE=eth0
NAME=eth0
HWADDR=1A:14:A4:0C:9E:81
TYPE=Ethernet
UUID=221667d4-1836-44be-8424-87dd8994ecf1
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
#USERCTL=no
#PEERDNS=yes
IPADDR=10.10.16.223
NETMASK=255.255.255.0
GATEWAY=10.10.16.1
#######################################################################################
ifconfig eth0 192.168.5.40 netmask 255.255.255.0 broadcast 10.10.16.255 up #用ifconfig设置ip和掩码
route add default gw 10.10.16.1 #设置网关
#######################修改DNS配置文件###########################
nameserver 202.106.0.20
nameserver 114.114.114.114
#########修改完DNS配置不需要重启###########

2、XenServer虚拟化系统安装部分

①、按F2进入高级安装模式;
②、在boot后面输入shell命令;
③、编辑安装引导文件: vi /opt/xensource/installer/constants.py
修改磁盘大小,找到以下内容:
max_primary_disk_size_dos Root_size =10240 #GB #主磁盘默认是2047GB,视情况给定大小
root_size=102400 #结合实际情况给定系统盘大小,我这里给的是100G(注释上面一行长的另起一行)
④、保存wq,退出,exit退出命令行模式

3、Xencenter上宿主机之间挂载镜像

#mkdir /iso 上传镜像centos6.8镜像,宿主机93上操作
#xe sr-create name-label=system-iso type=iso device-config:location=/iso device-config:legacy_mode=true content-type=iso
e16888c4-1feb-e95f-e6dd-ef7a40624187 #出现这一串字符正常
#xe-mount-iso-sr /iso
#xe-toolstack-restart #重新加载服务,###点击system-iso -----storge---rescan
#scp CentOS-6.8-x86_64-minimal.iso 10.10.16.93:/iso #在10.10.16.90宿主机/iso/目录下将镜像传到93上
####################################################################################
安装xen-tools总结:
1、首先需要点击Install XenServer Tools 让它自己跳至中控台
2、执行 mount -o ro,exec /dev/xvdd /mnt
3、执行 blkid -t LABEL="XenServer Tools" #指定文件类型
4、执行脚本 /mnt/Linux/install.sh
5、如果卸载:umount -f /mnt 到家目录执行

4、系统小功能优化部分

#####################添加常用高亮的变量信息######################
export PS1='[\e[33;1m][\u@\h \W]\$ [\e[0m]'
alias egrep='egrep --color=auto'
alias grep='grep --color=auto'

####################清除缓存#####################################
sync && sync
echo 3 > /proc/sys/vm/drop_caches
https://linux.cn/article-5627-1.html

###################修改jenkins执行权限################################
[root@jenkins ~]# cat /etc/passwd|grep jenkins
jenkins:x:498:498:Jenkins Automation Server:/var/lib/jenkins:/bin/false
[root@jenkins ~]# usermod -s /bin/bash jenkins
[root@jenkins ~]# cat /etc/passwd|grep jenkins
jenkins:x:498:498:Jenkins Automation Server:/var/lib/jenkins:/bin/bash

假如没有apache tomcat主页,修改防火墙设置:
vi /ect/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT #开放8080端口
service iptables restart #重启一下防火墙再重启一下tomcat服务器

5、快速安装jdk构建Java环境

tar -xzf jdk-8u60-linux-x64.tar.gz #安装jdk8
mkdir -p /usr/java/ 
mv jdk1.8.0_60 /usr/java/
sed -i.ori '$a export JAVA_HOME=/usr/java/jdk1.8.0_60\nexport PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH\nexport CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar' /etc/profile #这里可以用sed命令插入环境变量。
. /etc/profile
#安装maven
tar xf apache-maven-3.3.9-bin.tar.gz -C /usr/local/
mv /usr/local/apache-maven-3.3.9 /usr/local/maven
sed -i.ori2 '$a export MAVEN_HOME=/usr/local/maven\nexport PATH="$MAVEN_HOME/bin:$PATH"' /etc/profile
. /etc/profile
#部署Tomcat
tar xf apache-tomcat-8.0.27.tar.gz -C /usr/local/
mv /usr/local/apache-tomcat-8.0.27 /usr/local/tomcat
echo 'export TOMCAT_HOME=/usr/local/tomcat'>>/etc/profile
. /etc/profile
################################
tomcat多实例快速修改端口
sed -i 's#8005#8011#;s#8080#8081#' /usr/local/tomcat1/conf/server.xml
sed -i 's#8005#8012#;s#8080#8082#' /usr/local/tomcat2/conf/server.xml

#####################防火墙基本配置#############################
修改/etc/sysconfig/iptables,在22端口后面添加一下协议,然后重启防火墙
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp -i eth0 --dport 514 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp -i eth0 --dport 514 -j ACCEPT

################批量注释######################
Ctrl+v shift +i+#+esc

################定时更新时间#######################
#sync the time and update now
05 /usr/sbin/ntpdate cn.pool.ntp.org >/dev/null 2>&1

6、数据库实时备份

###############数据库实时备份##########################
http://blog.csdn.net/testcs_dn/article/details/48829785
#########数据库快速建表#################
http://www.cnblogs.com/sqbk/p/5806797.html

7、python升级操作

###################python升级######################################
yum install -y gcc (首先检查有没有安装gcc)
cd /usr/local/src/
wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz
tar -zxvf Python-3.5.2.tgz 
cd Python-3.5.2
mkdir /usr/local/python3
./configure --prefix=/usr/local/python3
make && make install
mv /usr/bin/python /usr/bin/python2.6.6
ln -s /usr/local/python3/bin/python3 /usr/bin/python
升级完Python3.5.2后我们再使用yum命令,发现已经不能使用了,处理方法也很简单
vim /usr/bin/yum
把文件头部的
#!/usr/bin/python
改成之前我们备份的老版本号
#!/usr/bin/ Python 2.6.6
如若有其他命令、软件不能正常使用,仿照yum配置文件的修改方法修即可。

###########################################################################
tomcat 通过ip或域名进行访问
修改本地host解析:linux与windows 且不用修改server.xml中的Host
tomcat配置https(SSL)http://www.linuxidc.com/Linux/2016-08/134339.htm

###############################
常见的HTTP状态码还有:403(禁止访问,权限不足);404(找不到网页,地址错误);503(服务器错误)502(网关错误)

#########mysql对库进行备份################
mysqldump -u root -pwangyao jpress > ~/mysql.sql
mysql -uroot -pwangyao jpress < ~/mysql.sql #导入
或者:切换到该库:source $PATH/XXX.sql 
对表进行备份的话:mysqldump -u root -pwangyao jpress 表名 > ~/mysql.sql
如果数据库恢复页面不能显示,看日志是404错误请修改tomcat下web.xml文件
<init-param>
<param-name>listings</param-name>
<param-value>false(将其该为true)</param-value>
</init-param>
########################################

###########vim编辑替换#########################
%s///g
删除当前行到结尾的所有行,将光标放置在当前行的行首
d + G

################################
linux创建用户和用户组,使其有某个目录的执行读写权限
创建用户组 
#groupadd task 
创建用户mysql 并将其纳入 task 用户组 
#useradd -G task mysql 
设置mysql用户的密码 
#passwd mysql



8、更改mysql用户的登录目录

#usermod -d /opt mysql 
useradd -d /home/test -m test #-m表示目录不存在自动创建 
改变目录opt 的 所属 用户和用户组 
#chown -R mysql:task /opt 
################################################

9、tar 命令打包#将日志文件打tar包

[root@localhost channelmanage]# ll
total 6274352
-rw-r--r-- 1 developer yaodu 40435043 Nov 15 23:59 access_2017-11-15.log
-rw-r--r-- 1 developer yaodu 13634 Nov 16 00:00 access_2017-11-16.log
-rw-r--r-- 1 developer yaodu 2298474272 Nov 14 23:59 catalina_2017-11-14.log
-rw-r--r-- 1 developer yaodu 3911957732 Nov 15 23:59 catalina_2017-11-15.log
-rw-r--r-- 1 developer yaodu 82687049 Nov 16 14:08 catalina_2017-11-16.log
[root@localhost channelmanage]# tar czvf catalina.tar.gz catalina_2017-11-14.log
#将14号的log文件打成tar包 #解压tar xf file.tar.gz 
说明:
tar -cvf log.tar log2012.log 仅打包,不压缩! 
tar -zcvf log.tar.gz log2012.log 打包后,以 gzip 压缩 
tar -zcvf log.tar.bz2 log2012.log 打包后,以 bzip2 压缩 
在参数 f 之后的文件档名是自己取的,我们习惯上都用 .tar 来作为辨识。 如果加 z 参数,
则以 .tar.gz 或 .tgz 来代表 gzip 压缩过的 tar包; 如果加 j 参数,则以 .tar.bz2 来作为tar包名。
[root@localhost channelmanage]# file catalina_2017-11-14.log #查看文件类型
catalina_2017-11-14.log: ASCII English text, with very long lines
日期加上分时秒
echo $(date +%Y/%m/%d-%H:%M:%S) =========》2017/11/17-09:59:47
date +%F ========date +%Y-%m-%d
注:不能使用tar命令精确到秒 可以使用 tar zcvf $PATH/file.$(date +%Y-%m-%d).tar.gz file.txt

######################################################################################

10、快速安装nginx

创建www用户
/usr/sbin/groupadd -f www
/usr/sbin/useradd -g www www

yum install gcc -y #默认有的话无须安装
yum install -y pcre-devel openssl-devel #依赖(支持Nginx服务访问,以https方式访问)
wget -q http://nginx.org/download/nginx-1.10.2.tar.gz #下载软件包
tar xf nginx-1.10.2.tar.gz
cd nginx-1.10.2
./configure --prefix=/usr/local/nginx-1.10.2 --user=www --group=www --with-http_stub_status_module --with-http_ssl_module
make && make install 
ln -s /usr/local/nginx-1.10.2 /usr/local/nginx
#这条ln命令的意义十分深远重大。这是生产环境的经验。
#将Nginx安装路径通过软链接方式更改为/usr/local/nginx/,方便人员使用。
#安装时指定版本号路径是为了便于查看分区当前使用的版本,也方便以后升级。
/usr/local/nginx/sbin/nginx #启动nginx 若报错说明没有创建www用户或者是
#ln -s /usr/local/nginx1.10/sbin/nginx /usr/local/sbin/ 做条软连接直接用nginx启动
在nginx.conf中 把user nobody的注释去掉既可
netstat -lntup|grep 80 查看是否有80端口
#查看nginx编译时的参数
#/usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.10.2
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-18) (GCC) 
built with OpenSSL 1.0.1e-fips 11 Feb 2013
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx-1.10.2 --user=www --group=www --with-http_stub_status_module --with-http_ssl_module
#检查配置文件语法是否有误
/usr/local/nginx/sbin/nginx -t 
egrep -v "#|^$" nginx.conf.default >nginx.conf #精简化/最小化默认nginx.conf配置文件信息

#################################################################
#配置nginx负载均衡
#vim conf/nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
upstream wang.com{ #服务器集群的名字
server 10.10.16.223:8080 weight=1;
server 10.10.16.252:8080 weight=2;

}
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://wang.com; #以上面对应 
proxy_redirect default;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}

#################################################################
Windows cmd基本命令大全
https://zhidao.baidu.com/question/364293756.html

##################################################################################

11、iptables相关含义

###iptales四表五链######
4个表代表不同的功能
● filer表 实现包过滤 主要负责主机防火墙功能 INPUT,OUTPUT,FORWARD
● nat表 网络地址转换 端口和ip映射以及共享上网功能 POSTROUTING,PREROUTING,OUTPUT
● mangle表 包重构(修改) INPUT,OUTPUT,FORWARD,POSTROUTING,PREROUTING
● raw表 数据跟踪处理
5个链代表流进、流出、转发的数据包
INPUT 进入主机的数据包。主机防火墙filter表的INPUT链
OUTPUT 流出主机的数据包
FORWARD 流经主机的数据包
PREROUTING 进入服务器最先经过的链,NAT端口或IP映射
POSTROUTING 流出服务器最后经过的链,NAT共享上网。局域网共享上网(NAT表的POSTROUTING链)

规则(policy):即具体执行办事所对应的规则。(知道在哪张表、哪个链上配置规则)
iptables参数数据包的过程
① 当一个数据包进入网卡时,它首先进入PREROUTING链,内核根据数据包目的的IP判断是否需要转送出去
② 如果数据包就是进入本机的,它就会向下移动,到达INPUT链,数据包到了INPUT链,任何进程都会收到它。本机的程序
可以发送数据包,这些数据包会经过OUTPUT链,然后到达POSTROUTING链输出。
③ 如果数据包是要转发出去的,且内核允许转发,数据包就会如图所示向右移动,经过FORWARD链,然后到达POSTROUTING链
输出。

iptables -I INPUT -s 10.10.16.222 -j DROP #临时封ip
iptables -D INPUT -s 10.10.16.222 -j DROP #临时解ip
###########################################################
yum安装问题提示no package XX available Error:Nothing to do
#下载EPEL对应的版本和安装\需要的是centos64位
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpm
然后我们再执行安装命令就可以正常的安装

####################################################
安装Java运行环境
yum install java-1.7.0-openjdk
如果是要开发Java应用程序,则需要安装Java-1.7.0-openjdk-devel

12、磁盘分区相关含义

###################################################
磁盘分区:
主分区-----最多只能有4个主分区,分区表限制64个字节,sda1 sda2 sda3 sda4
扩展分区------如果划分更多的分区,必须创建扩展分区,不能直接使用,需创建逻辑分区才能使用
sda4 主分区+扩展分区 最多4个
逻辑分区-----实际可以使用,存放数据的位置, 需要创建扩展分区,注意序号从5开始!
P---primary主分区
E---extended 扩展分区 只能为一个
L----logical 逻辑分区

13、数据库相关了解

###############################################################################
1、先要了解当前的数据库的版本和平台和相关信息
mysql> select @@version; ------- 或者select version(); -----status 或 mysql -V 
+------------+
| @@version |
+------------+
| 5.6.26-log |
+------------+
1 row in set (0.00 sec)
①了解各个数据库为哪些业务系统提供服务
②了解各个数据库所在服务器的磁盘使用情况以及文件的分布情况
③其它的进程需要消耗多少内存。这包括你的系统进程,页表,套接字缓冲。
④你的服务器是否专门用于 MySQL 还是你运行着其它非常消耗内存的服务。
⑥MySQL最大连接数---修改连接数--
mysql> show variables like '%max_connections%';
⑦mysql的线程数查看:Threads_created表示创建过的线程数,通过查看Threads_created就可以查看MySQL服务器的进程状态。
mysql> show global status like 'Thread%';
⑧适当增加配置文件中thread_cache_size值,查询服务器thread_cache_size配置:

show variables like 'thread_cache_size';
2、其次要了解你的数据库中装了哪些组件
select from dba_registry;

3、搞清楚这个环境是单机还是集群?
这个判断方法很多,我这里给出一个借助dbms_utility来判断的方法。
mysql>SHOW MASTER LOGS; 此命令显示目前二进制日志的数目
4、是否配置了DataGuard?
select protection_mode, protection_level, remote_archive, database_role, dataguard_broker,guard_status
from v$database;
5、是否起用了归档模式?
conn /as sysdba
archive log list;
select log_mode from v$database;

6、是否起用了flashback database特性?
select flashback_on from v$database;
如果是,再进一步查看FRA的配置情况
7、是否起用了force logging和补充日志?
select force_logging,supplemental_log_data_min, supplemental_log_data_pk, supplemental_log_data_ui,
supplemental_log_data_fk, supplemental_log_data_all
from v$database;
8、了解控制文件的组成
select 
from v$controlfile;
9、了解日志文件的组成
select l.group#, lf.type, lf.member, l.bytes, l.status LOG_STATUS, lf.status LOGFILE_STATUS
from v$log l, v$logfile lf
where l.group# = lf.group#
order by 1,3;
#####################15个有用的mysql性能调整和优化####################################
1、启用Innodb的每张表一个数据文件设置:innodb_file_per_table = 1
2、将MySQL数据库数据存储到独立分区上:https://linux.cn/article-5730-1.html 
3、优化使用innodb的缓冲池:innodb_buffer_pool_size = 2G
4、在MySQL上避免使用Swappiness
5、设置MySQL的最大连接数:set global max_connections = 300;
6、配置MySQL的线程缓存数量:show status like 'Threads_created; show status like 'Connections';
set global thread_cache_size = 16;
7、禁用mysql的DNS反向查询
详见:https://linux.cn/article-5730-1.html

########################################################################################

14、find快速查找关键词文件

find . -type f |xargs grep "dev-rs" #查找文件并过滤出来

###################################################################

15、快速做ssh免密钥登录

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa >/dev/null 2>&1
ssh-copy-id -i /root/.ssh/id_dsa.pub root@10.10.16.224
####################################################################

16、提示No package *** available

wget -c http://epel.mirror.net.in/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpm

17、tomcat项目,为数据源配置JNDI资源

1、为数据源配置一个JNDI资源,定义在context元素中,配置在context.xml文件中
2、首先将数据库的驱动程序copy到tomcat\lib下,这一部非常重要
3、将代码放到context.xml配置文件中:
<Resource name="jdbc/yaodu-framework" auth="Container" type="javax.sql.DataSource" 
maxActive="1000" maxIdle="30" maxWait="60000" username="devwww" password="www#799" 
driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://10.10.16.108:3306/yaodu_pactera?useUnicode=true&
characterEncoding=UTF-8&autoReconnect=true&failOverReadOnly=false"/>

#name=“jdbc/数据库名”
#maxActive=1000 最大可以有1000名用户连接数据源
#maxIdle=30 加入没有用户连接,空出30个连接等待用户连接
#maxWait=60000 假如已连接用户60000秒内没有再次连接数据源,则放弃此连接
#driverClassName="数据库的驱动"

18、solr搜索应用

1、solr 4.2通过虚拟机连接MySQL数据库导入数据查询
在/usr/local/tomcat/core_information/conf/solrconfig.xml 中添加连接数据库的配置文件db-data-config.xml
2、修改db-data-config.xml 通过添加jdbc数据库连接地址url="jdbc:mysql://10.170.230.163:3306/yaodu_pactera"
说明:
dataSource是数据库数据源。
Entity就是一张表对应的实体,pk是主键,query是查询语句。
Field对应一个字段,column是数据库里的column名,后面的name属性对应着Solr的Filed的名字
3、修改同目录下的schema.xml,这是Solr对数据库里的数据进行索引的模式
#保留_version_这个field
#添加索引字段:这里么个field的name要和data-config.xml里的entity的field的name一致对应
#删除多余的field,删除copyField里的设置,这些用不上:text和field不能删除,否则solr启动失败
<field name="text" type="text_general" indexed="true" stored="false" multiValued="true"/>
#设置唯一主键:<uniqueKey>id</uniqueKey>
注意:Solr中索引的主键默认是只支持type="string"字符串类型的,而我的数据库中id是int型的,
会有问题,解决方法:修改同目录下的elevate.xml,注释掉下面2行,这貌似是Solr的Bug,原因不明。
<doc id="MA147LL/A" />
<doc id="IW-02" exclude="true" />
配置完重启solr
solrconfig.xml是solr的基础文件,里面配置了各种web请求处理器、请求响应处理器、日志、缓存等。
schema.xml配置映射了各种数据类型的索引方案。分词器的配置、索引文档中包含的字段也在此配置。

19、mysql备份策略相关理解

备份策略: 
1、利用Mysqldump+二进制日志实现备份 mysqldump逻辑备份,速度比较慢,占用空间比较小,逻辑备份恢复成本高,备份sql语句
2、利用LVM快照+二进制日志实现备份 热备、支持所有基于本地磁盘的存储引擎、快速备份、低开销、容易保持完整性、快速恢复。
3、使用Xtrabackup备份 物理备份就是备份数据库文件,相当于cp
特点:①在线热备份。可以备份innnodb和myisam。innodb主要应用recovery原理。myisam直接拷贝文件
②支持流备份。可以备份到disk
③支持增量备份。可以利用lsn和基础备份目录来进行增量备份
④支持记录slave上的master log和master position信息
⑤支持多个进程同时热备份,xtrabackup的稳定性还是挺好的
容灾技术:本地或异地---容灾技术是系统的高可用性技术的一个组成部分,容灾系统更加强调处理外界环境对系统的影响,特别是灾难性事件对整个IT节点的影响,提供节点级别的系统恢复功能。

20、MongoDB3.4.1安装

https://www.jianshu.com/p/d09506c64fcd #介绍比较详细安装步骤,采用yum安装
http://blog.sina.com.cn/s/blog_4c7628c40102we7o.html #mongodb用户创建与授权
db.createUser({user:'hcms',pwd:'mongo#228', roles:[{role:'root', db:'admin'}]})
mongo 127.0.0.1:27017/hcms -u hcms -p
mongo 10.10.16.228:27017/hcms -u hcms -pmongo#228

21、Linux_搭建Redis集群哨兵模式

https://segmentfault.com/a/1190000010536184 #一台机器上安装主从节点
















本文转自浅景尘51CTO博客,原文链接: http://blog.51cto.com/857803451/2064601,如需转载请自行联系原作者


网友评论

登录后评论
0/500
评论
技术小甜
+ 关注