#############################最小化安装必备#############################
1.yum -y install vim
2.yum -y install net-tools.x86_64 //没有安装network
3.yum -y install bash-completion //firewalld 不能补齐
4.yum -y install bc
安装图形界面
yum groupinstall "X Window System"
yum grouplist |grep -i desktop //有时要安装desktop 或gnome desktop
yum groupinstall “GNOME Desktop”
startx 进图形
在centos6中vim /etc/inittab
id:3:initdefault:修改为id:5:initdefault:保存文件并重启即可
在centos7中root用户权限下,设置centos系统默认的启动方式:
2 .systemctl set-default graphical.target //设置成图形模式
########################批量在目录下来替换文本内容#####################
#!bin/bash
a=/data/test/public_www/static/uiqy/cloud_list
b=-1.html
c=/data/test/public_www/static/uiqy/test2/cloud_list
abc=`grep qy.com.cn -rl /data/test`
for x in $abc
do
if [ "$x" == "$a" ];then
continue;
fi
if [ "$x" == "$b" ];then
continue;
fi
if [ "$x" == "$c" ];then
continue;
fi
sed -i "s#qy.com.cn#ziyun.com#g" $x
done
sed -i "s#qy.com.cn#ziyun.com#g" '/data/test/public_www/static/uiqy/cloud_list -1.html'
sed -i "s#qy.com.cn#ziyun.com#g" '/data/test/public_www/static/uiqy/test2/cloud_list -1.html'
#####################批量在目录下少量文本替换#################
sed -i ‘s#aa#bb#g’ `grep ‘aa’ -rl /root/ `
sed -n ‘s#aa#bb#g p’ `grep ‘aa’ -rl /root/ `
################mysqldump备份压缩############
①用--databases指定多个库导出,用空格分开
mysqldump -uroot -p --databases test1 test2 test3 > /root/test.sql
②导出的时候可以压缩
mysqldump -uroot -p --databases test1 test2 test3| gzip --fast > /root/test.sql.gz
mysqldump -uroot -p --databases test1 test2 test3| gzip --best > /root/test.sql.gz
③导出压缩可以用time计算下时间
time mysqldump -uroot -p --databases test1 test2 test3| gzip --fast > /root/test.sql.gz
time mysqldump -uroot -p --databases test1 test2 test3| gzip --best > /root/test.sql.gz
④用-o代表--one-database 顾名思义指定库导入
mysql -uroot -p test1 -o < /root/test.sql
###############################################################################
###################不进数据库mysql输命令#############################
mysql -uroot -p‘123456‘ -e "show variables like ‘%character%’"
#############改端口文件rsync文件传输###########
rsync -arvz -e ‘ssh -p 50022’ /root 192.168.99.99:/root
###################tar打包目录####################
tar -zcvf 打包后生产的文件.tar.gz 要打包的目录 //打包并压缩
tar -cvf 打包后生产的文件.tar 要打包的目录 //打包,不压缩
tar -xvzf 踏包.tar.gz
zip -r ./xiaoxiao.zip ./* -r 表示递归
unzip 解压
#####################时间更新##########################
*/20 * * * * /usr/sbin/ntpdate pool.ntp.org > /dev/null 2>&1
01 */3 * * * /usr/sbin/ntpdate ntp.fudan.edu.cn >> /dev/null 2>&1
#######################防火墙firewall-cmd############################
1、firewalld的基本使用
启动: systemctl start firewalld
关闭: systemctl stop firewalld
查看状态: systemctl status firewalld
开机禁用 : systemctl disable firewalld
开机启用 : systemctl enable firewalld
2.systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。
启动一个服务:systemctl start firewalld.service
关闭一个服务:systemctl stop firewalld.service
重启一个服务:systemctl restart firewalld.service
显示一个服务的状态:systemctl status firewalld.service
在开机时启用一个服务:systemctl enable firewalld.service
在开机时禁用一个服务:systemctl disable firewalld.service
查看服务是否开机启动:systemctl is-enabled firewalld.service
查看已启动的服务列表:systemctl list-unit-files|grep enabled
查看启动失败的服务列表:systemctl --failed
3.配置firewalld-cmd
查看版本: firewall-cmd --version
查看帮助: firewall-cmd --help
显示状态: firewall-cmd --state
查看所有打开的端口: firewall-cmd --zone=public --list-ports
更新防火墙规则: firewall-cmd --reload
查看区域信息: firewall-cmd --get-active-zones
查看指定接口所属区域: firewall-cmd --get-zone-of-interface=eth0
拒绝所有包:firewall-cmd --panic-on
取消拒绝状态: firewall-cmd --panic-off
查看是否拒绝: firewall-cmd --query-panic
那怎么开启一个端口呢
添加
firewall-cmd --zone=public --add-port=80/tcp --permanent (--permanent永久生效,没有此参数重启后失效)
重新载入
firewall-cmd --reload
查看
firewall-cmd --zone= public --query-port=80/tcp
删除
firewall-cmd --zone= public --remove-port=80/tcp --permanent
firewall-cmd --permanent --zone=public --add-rich-rule 'rule family="ipv4" source address="42.51.41.86" port protocol="tcp" port="3306" accept'
firewall-cmd --reload
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="42.7.27.166" service name="ssh" reject" //阻止sshd
###############linux文件备份到window rsync#################################
cd c:/cwRsync_5.5.0_x86_Free\bin
xxxxxxxx>rsync.exe -vzrtopg --progress --delete --password-file=/cygdrive/C/rsync.pass [email protected]::xx /cygdrive/D/nfsbackup/yy
注:yy看window目录
linux 插看xx
rsync --list-only [email protected]:: 可以查看xx目录
mysqlbinlog --no-defaults /data/mysql/mysql-bin.000015
/usr/bin/mysqldump -uroot -p -B -F -R -x --master-data=2 ops
-B:指定数据库
-F:刷新日志
-R:备份存储过程等
-x:锁表
--master-data:默认等于1,将dump起始(change master to)binlog点和pos值写到结果中,等于2是将change master to写到结果中并注释。
mysql> show binlog events in 'mysql-bin.000003';
通过分析,造成数据库破坏的pos点区间是介于 875--954 之间(这是按照日志
区间的pos节点算的),只要恢复到875前就可。
#################################################
mysqlbinlog mysql-bin.0000xx | mysql -u用户名 -p密码 数据库名
--------------------------------------------------------
常用参数选项解释:
--start-position=875 起始pos点
--stop-position=954 结束pos点
--start-datetime="2016-9-25 22:01:08" 起始时间点
--stop-datetime="2019-9-25 22:09:46" 结束时间点
--database=zyyshop 指定只恢复zyyshop数据库(一台主机上往往有多个数据库,只限本地log日志)
--------------------------------------------------------
不常用选项:
-u --user=name 连接到远程主机的用户名
-p --password[=name] 连接到远程主机的密码
-h --host=name 从远程主机上获取binlog日志
--read-from-remote-server 从某个MySQL服务器上读取binlog日志
xtrabackup --user=root --password=123456 --databases="test1 test2 test3" --target-dir=/root/mysql_bak -S /tmp/mysql.sock --backup
输出两行echo
echo -e "42.51.41.86 slave86\n 42.51.28.180 slave180" >>/etc/hosts
awk -F "[ :]+"
使用多个分隔符.先使用空格分割,然后对分割结果再使用","分割
$ awk -F '[ ,]' '{print $1,$2,$5}' log.txt
ps -A 显示进程信息
ps -u root //显示root进程用户信息
ps -ef //显示所有命令,连带命令行
-aux 显示所有包含其他使用者的行程
###############正则扩展表达式##############################
.* 任意长度的任意字符
\? 匹配其前面的字符0或1次
\+ 匹配其前面的字符至少1次 (非贪婪模式)
\{n\} 匹配前面的字符n次
\{m,n\} 匹配前面的字符至少m次,至多n次
\{,n\} 匹配前面的字符至多n次
\{n,\} 匹配前面的字符至少n次
###############mysql数据库授权#####################
grant 权限列表 on 库名 to 用户名@”客户端地址“ identified by ”密码“ whith grant option;
权限列表: all select update delete usage
flush privileges;
######################安装ab 压力测试##################
yum -y install httpd-tools
##################查看IP访问次数#######################
netstat -nat|grep ":80"|awk '{print $5}' |awk -F: '{print $1}' | sort| uniq -c|sort -n
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
#############修改时间#################################
######################开机自启############################
自启动
[CentOS6]
$ chkconfig service_name on/off
[CentOS7]
$ systemctl enable service_name
$ systemctl disable service_name
#################修改内核参数 文件######################
/etc/sysctl.conf文件
#########检查shell语法格式#############
sh -n httdps.sh
################一次性创多个目录################
mkdir -pv /var/tmp/nginx18/{proxy,fastcgi,uwsgi,scgi}
################显示行号##################
cat -n file(文件)
##############计划任务10s一次###########################
* * * * * sleep 10;/etc/zabbix/mysqlslave-monitor/export-slave-mylogpos.sh &>/dev/null
* * * * * sleep 20;/etc/zabbix/mysqlslave-monitor/export-slave-mylogpos.sh &>/dev/null
* * * * * sleep 30;/etc/zabbix/mysqlslave-monitor/export-slave-mylogpos.sh &>/dev/null
* * * * * sleep 40;/etc/zabbix/mysqlslave-monitor/export-slave-mylogpos.sh &>/dev/null
* * * * * sleep 50;/etc/zabbix/mysqlslave-monitor/export-slave-mylogpos.sh &>/dev/null
*/20 * * * * /usr/sbin/ntpdate pool.ntp.org > /dev/null 2>&1 20分钟
#匹配行前加
sed -i '/allow 361way.com/iallow www.361way.com' the.conf.file#匹配行前后
sed -i '/allow 361way.com/aallow www.361way.com' the.conf.file
a = after ,i = in front
添加网关add
route del default gw 192.168.1.1
检查数据库代码是否有误#/usr/libexec/mysqld --help --verbose
只查看当前连接数(Threads就是连接数.)
mysqladmin -uroot -proot status
show full processlist 看一下所有连接进程,注意查看进程等待时间以及所处状态 是否locked
如果进程过多,就把进程打印下来,然后查看
mysql -e 'show full processlist;' > 111
查找非locked的进程,一般就是当前执行中卡死,导致后面的进程排队的原因。
mysqladmin -u root -proot -h localhost status
这条命令返回MYSQL当前状态的几个值
Uptime: 18869 Threads: 1 Questions: 1 Slow queries: 0 Opens: 33 Flush tables: 1 c: 0 Queries per second avg: 0.000
Uptime:是mysql正常运行的时间。
Threads:指开启的会话数吧。
Questions: 服务器启动以来客户的问题(查询)数目 (应该是只要跟mysql作交互:不管你查询表,还是查询服务器状态都问记一次)。
Slow queries:按字面意思是慢查询的意思,不知道musql认为多久才足够算为长查询,这个先放着。
Opens:服务器已经打开的数据库表的数量
Flush tables: 服务器已经执行的flush ...、refresh和reload命令的数量。
open tables:通过命令是用的数据库的表的数量,以服务器启动开始。
Queries per second avg:select语句平均查询时间?
--------------------shell前后插入-----------
#如果知道行号可以用下面的方法
sed -i '88 r b.file' a.file #在a.txt的第88行插入文件b.txt
awk '1;NR==88{system("cat b.file")}' a.file > a.file
#如果不知道行号,可以用正則匹配
sed -i '/regex/ r b.txt' a.txt # regex是正则表达式
awk '/target/{system("cat b.file")}' a.file > c.file
#sed的話如果不改变源文件,可以去掉-i开关,修改会输出到STDOUT
原文件:
[root@xiaowu shell]# cat -n file
1 aaaa
2 bbbb
3 cccc
4 dddd
现在要在第二行即“bbbb”行的下面添加一行,内容为“xiaowu”
[root@xiaowu shell]# sed '/bbbb/a\xiaowu' file
aaaa
bbbb
xiaowu
cccc
dddd
如果要加两行“xiaowu”可以用一下语句,注意用“\n”换行
[root@xiaowu shell]# sed '/bbbb/a\xiaowu\nxiaowu' file
aaaa
bbbb
xiaowu
xiaowu
cccc
dddd
如果要在第二行即“bbbb”行的上添加一行,内容为“xiaowu”,可以把参数“a”换成“i”
[root@xiaowu shell]# sed '/b/i\xiaowu' file
aaaa
xiaowu
bbbb
cccc
dddd
以上文件中只有一行匹配,如果文件中有两行或者多行匹配,结果有是如何呢?
[root@xiaowu shell]# cat -n file
1 aaaa
2 bbbb
3 cccc
4 bbbb
5 dddd
[root@xiaowu shell]# sed '/bbbb/a\xiaowu' file
aaaa
bbbb
xiaowu
cccc
bbbb
xiaowu
dddd
由结果可知,每个匹配行的下一行都会被添加“xiaowu”
那么如果指向在第二个“bbbb”的下一行添加内容“xiaowu”,该如何操作呢?
可以考虑先获取第二个“bbbb”行的行号,然后根据行号在此行的下一行添加“xiaowu”
获取第二个“bbbb”行的行号的方法:
方法一:
[root@xiaowu shell]# cat -n file |grep b |awk '{print $1}'|sed -n "2"p
4
方法二:
[root@xiaowu shell]# sed -n '/bbbb/=' file |sed -n "2"p
4
由结果可知第二个“bbbb”行的行号为4,然后再在第四行的前或后添加相应的内容:
[root@xiaowu shell]# sed -e '4a\xiaowu' file
aaaa
bbbb
cccc
bbbb
xiaowu
dddd
[root@xiaowu shell]# sed -e '4a\xiaowu\nxiaowu' file
aaaa
bbbb
cccc
bbbb
xiaowu
xiaowu
dddd
向指定行的末尾添加指定内容,比如在“ccccc”行的行尾介绍“ eeeee”
[root@xiaowu shell]# cat file
aaaaa
bbbbb
ccccc
ddddd
[root@xiaowu shell]# sed 's/cc.*/& eeeee/g' file
aaaaa
bbbbb
ccccc eeeee
################如何让nginx显示文件夹目录############
location / {
root /data/www/file //指定实际目录绝对路径;
autoindex on; //开启目录浏览功能;
autoindex_exact_size off; //关闭详细文件大小统计,让文件大小显示MB,GB单位,默认为b;
autoindex_localtime on; //开启以服务器本地时区显示文件修改日期!
}
########################修改时间############################
timedatectl set-timezone "Asia/Shanghai"
yum -y install chrony
vim /etc/chrony.conf
systemctl restart chronyd
systemctl enable chronyd
timedatectl set-ntp true
firewall-cmd --add-service=ntp --permanent
$ firewall-cmd --reload
#########################ssh免密登入########################
ssh-keygen -t rsa
cd .ssh/
ssh-copy-id -i id_rsa.pub 42.51.44.17 -p 50022
#######################secureCRT 用lrzsz上传下载################
rz是上传 rz file