RPM、YUM
yum -y install epel-release (国外源)
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo (aliyun)
RPM:很难解决包依赖关系
rpm -ivh 安装包、-e卸载、--nodeps忽略依赖关系、-force强制安装软件包、-nosignature不检验软件包的签名。
-q:查询指定包是否安装 -qa: rpm -qa |grep ntfs、过滤。
-ql:查询安装文件、 -qf: rpm -qf /usr/bin/ntfs-3g 查询属于哪个rpm包
-qi:查询包的详细信息、 -qc配置文件、 -qd:帮助文档。
cd etc/yum.repos.d/:yum源所在地。
yum provides +包名:查询下载什么包、
yum clean all :清空yum缓存、reinstall重新安装。
yum makecache:提高安装速度、
yum repolist:重新加载yum源
yum search mysql:查找软件(装、不装、有的都找)
yum deplist httpd:查看依赖关系
yum list 所有的包罗列出来、yum list|grep “httpd” 过滤下自己要的
yum grouplist
yum reinstall 重新安装、
yum remove 卸载、=yum -y erase、
1、自己配yum源:cd/etc/yum.repos.d下、其他.repo备份。
vim myselfyum.repo
[centos7u3]
name=sentos7i4
baseurl=file:///mnt //本地yum源挂载地址/mnt.远程:ftp(http)://192.168.14.130/pub(相对路径。我不知道为啥。。)
enabled=1 //开启yum源
gpgcheck=0 //不检测
yum repolist 重新加载
2、远程(局域网ftp)#mkdir /opt/yum-iso
#mount /opt/Centos-7.iso /opt/yum-iso(或者mount /dev/sr0 /mnt)
#yum -y install vsftpd
cp -a /mnt/* /var/ftp/pub/ :拷贝到pub目录下(vsftpd共享目录pub)
#createrepo /myyum (注:防火墙关、vsftpd服务开启、服务器端完成)
(客户端):cd /etc/yum.repos.d 同1.自配yum源。
#vim /etc/yum.conf默认删除安装包、
keepcache=1 打开、会保存安装包、制作yum源。
源码包:#/etc/rc.d/init.d(好多服务都在这、绝对路径启动服务。):源码包可以安装多个服务。yum只能装一次。
1. 编译环境如编译器 gcc、make
2. 准备软件 tengine-2.2.0.tar.gz
# yum -y install gcc make zlib-devel pcre pcre-devel openssl-devel
# useradd www
# tar xvf tengine-2.2.0.tar.gz
# cd tengine-2.2.0
vim instllNginx.sh
# ./configure
--user=www
--group=www
--prefix=/usr/local/nginx
--with-http_stub_status_module
--with-http_sub_module
--with-http_ssl_module
--with-pcre
# make && make install 编译后安装(1正确才执行2)
# /usr/local/nginx/sbin/nginx //启动 nginx 服务器
# systemctl stop firewalld
#setenfore 0
Rz: 上传数据包,yum -y install lrzsz 下载rz。
Wget:-O 设置下载路径并命名,wget -O /etc/yum.repos.d/CentOS-Base.repo <http://mirrors.aliyun.com/repo/Centos-7.repo>
Systemctl status httpd 查看http状态 Systemctl reload httpd 重新加载http服务
日志服务cron
at:计划任务做一些周期性的任务。
crontab -l 列出当前用户的计划任务
crontab -r删除当前用户的所有计划任务、-u 指定用户来查看其cron表。
crontab -e编辑当前用户的计划任务:
分钟(0-59)、小时(0-23)、日期(1-31)、月份(1-12)、周(1-7)、命令(绝对路径)或脚本路径(绝对路径)。
日志轮换、切割
#如果没有日志轮转,日文件会越来越大
#将丢弃系统中最旧的日志文件,以节省空间
#logrotate 本身不是系统守护进程,它是通过计划任务 crond 每天执行
logrotate 配置文件:
#/etc/logrotate.conf (决定每个日志文件如何轮转)(主配置文件)
#/etc/logrotate.d/* (各种服务日志如何轮转)
#/var/log 各种服务日志文件位置所在。
[root@ICan ~]# vim /etc/logrotate.conf
=========全局设置==========
weekly //轮转的周期,一周轮转
rotate 4 //保留 4 份
create //轮转后创建新文件
dateext //使用日期作为后缀
#compress //是否压缩
include /etc/logrotate.d //包含该目录下的文件
/var/log/wtmp { //对该日志文件设置轮转的方法
monthly //一月轮转一次
minsize 1M //最小达到 1M 才轮转
create 0664 root utmp //轮转后创建新文件,并设置权限,属主,属组。
rotate 1 //保留一份
}
/var/log/btmp {
missingok //丢失不提示
monthly //每月轮转一次
create 0600 root utmp //轮转后创建新文件,并设置权限
rotate 1 //保留一份
例1:轮转文件/var/log/yum.log
vim /etc/logrotate.d/yum
/var/log/yum.log {
missingok //丢失不提醒
#notifempty // 空文件不轮转
#size 30k //只要到了30k就轮转、不够不轮转。
#yearly
daily //每天轮转一次
rotate 3
create 0777 root root
}
测试:
[root@localhost]# /usr/sbin/logrotate /etc/logrotate.conf //手动轮转
[root@localhost]# /usr/sbin/logrotate -f /etc/logrotate.conf //强制手动轮转
[root@localhost]# ls /var/log/yum* /var/log/yum.log
/var/log/yum.log-20170331
[root@localhost ]# grep yum /var/lib/logrotate/logrotate.status //记录所有日志文件最近轮转的时间 "/var/log/yum.log" 2017-3-31-10:0:23
date 09011000 月日时分
#/usr/sbin/logrotate -s /var/lib/logrotate.status /etc/logrotate.conf //根据状态文件,规则文件进行轮转
二、常见的日志文件
# ls /var/log/ #默认存放各种日志的地方
# tail /var/log/messages #系统主日志文件
# tail -f /var/log/messages #动态查看日志文件的尾部
# tail -f /var/log/secure #认证、安全
# tail /var/log/maillog #跟邮件(sendmail,postfix)相关
# tail /var/log/cron #crond、at进程产生的日志
# tail /var/log/dmesg #和系统启动相关-开机后不再记录,可以使用dmesg命令查看活动的日志
# grep -i eth /var/log/dmesg #只反映出开机过程的信息,开机成功后不会再改变
# dmesg #查看系统开机后的信息
# tail /var/log/audit/audit.log #系统审计日志
# tail /var/log/yum.log
# tail /var/log/mysqld.log #mysql进程自己记录的日志
# tail /var/log/httpd/access_log #httpd进程自己记录的日志
# tail /var/log/xferlog #和访问FTP服务器相关
# w #当前登录的用户 /var/log/wtmp
# last #最近登录的用户 /var/log/btmp
# lastlog #所有用户的登录情况 /var/log/lastlog
网络服务:
网络配置:
#nmcli:nmcli connection show:查看网卡状态吧。nmtui:图形工具
#nmcli connection down(up) ens33 、关闭ens33(连接名)网卡、ifup/ifdown:也可以的。nmcli connection delete enp2s0-auto删除。
#nmcli connection add con-name ens32-atuo autoconnect yes ifname ens33 type ethernet ip4 192.168.14.4/24 gw4 192.168.14.254 ipv4.dns 114.114.114.114 //设备ens33提前存在。
#nmcli connection modify enp2s0-gun ipv4.method a:设置为自动(auto)、nmcli connection modify enp2s0-gun ipv4.method m、手动(manul)
#nmcli connection modify enp2s0-gun +ipv4.addresses 20.20.20.20/24、nmcli connection modify enp2s0-gun +ipv4.dns 114.114.114.114、
#vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0 设备名称 【NAME="System eth0" 设备名称】 可以不存在
BOOTPROTO=none 启动协议 获取ip地址的方式 static、none ==>静态获取 dhcp 动态
NM_CONTROLLED=no 默认是yes 关闭network-manager
ONBOOT=yes 开机启动
TYPE=Ethernet 以太网类型
HWADDR=00:0c:29:8e:a5:d3 mac地址
IPADDR=172.16.80.252 ip地址
NETMASK=255.255.0.0 掩码
PREFIX =24 掩码
GATEWAY=172.16.80.1 网关
DNS=114.114.114.114 //dns
配置域名解析
#vim /etc/hosts
119.75.218.70 www.baidu.com、
#getent hosts www.baidu.com、算是查看吧
配置NDS(dns服务端)
#vim /etc/resolv.conf
# Generated by NetworkManager
nameserver 211.138.24.66
#yum -y install bind-utils(host,dig,host,nslookup,nsupdate)域名解析信息吧《工具》 #host www.sina.com
# ip a //查看主机ip地址 # ip a s eth0 //查看某一网卡 # ip route //查看路由表条目 # ip neigh //查看邻居的mac地址 # hostname # ping www.baidu.com # ping -c2 www.baidu.com # traceroute www.1905.com 路由跟踪 # tracepath www.1905.com 路由跟踪
netstat:显示网络相关信息 netstat [选项] -t:TCP协议、-u:UDP协议、-l:监听、-r:路由、-n:显示IP地址和端口号 netstat -tlum 查看本机监听端口 Netstat -an 查看本机所有的网络连接 Netstat -rn 查看本机路由表 网关
ss命令(比netstat快) -n 不显示服务名称、 -a显示所有信息 -t 显示tcp链接服务、 -l显示监听的端口 # ss -tnl、#ss -tnl |grep :21 # ss -atn //a表示所有状态。可能是listen,也可能是已连接的
ip转发: #echo 1 > /proc/sys/net/ipv4/ip_forward(临时) #vim /etc/sysctl.conf 修改内核参数 (永久) net.ipv4.ip_forward = 1 #sysctl -p //立即生效 #sysctl net.ipv4.ip_forward 、查看是否支持包转发。 扫描ip:#nmap -v -sP 172.16.70.0/24 扫描端口 :#nmap -v -A 172.16.70.0/24
配置静态路由:
方法一: 添加路由 route add -net 192.168.0.0/24 gw 192.168.0.1 route add -host 192.168.1.1 dev ens33 删除路由 route del -net 192.168.0.0/24 gw 192.168.0.1 add 增加路由 del 删除路由 -net 设置到某个网段的路由 -host 设置到某台主机的路由 gw 出口网关 IP地址 dev 出口网关 物理设备名 增 加默认路由 route add default gw 192.168.0.1 默认路由一条就够了 route -n 查看路由表
方法二: 添加路由 ip route add 192.168.0.0/24 via 192.168.0.1 ip route add 192.168.1.1 dev 192.168.0.1 删除路由 ip route del 192.168.0.0/24 via 192.168.0.1 add 增加路由 del 删除路由 via 网关出口 IP地址 dev 网关出口 物理设备名 增加默认路由 ip route add default via 192.168.0.1 dev eth0 via 192.168.0.1 是我的默认路由器 查看路由信息 ip route
Yum方式部署lnmp环境
L = Linux ; N = Nginx ; M = Mysql/Mariadb ; P = Php
一、基础环境[已完成] [root@apache ~]# setenforce 0 [root@apache ~]# systemctl stop firewalld.service [root@apache ~]# systemctl disable firewalld.service [root@apache ~]# yum -y install epel-release 二、安装LAMP[已完成] [root@apache ~]# yum -y install nginx mariadb-server mariadb php php-mysql gd php-gd [root@apache ~]# systemctl start nginx mariadb [root@apache ~]# systemctl enable nginx mariadb
FTP
FTP基础
软件包: vsftpd FTP端口: 控制端口 command 21/tcp 配置文件: /etc/vsftpd/vsftpd.conf
FTP Server(服务端)
[root@youngfit ~]# yum -y install vsftpd [root@youngfit ~]# systemctl start vsftpd
[root@iZwz9f17um10wphrf38ni8Z ~]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) [root@iZwz9f17um10wphrf38ni8Z ~]# touch /var/ftp/test.txt
[root@iZwz9f17um10wphrf38ni8Z ~]# systemctl start vsftpd [root@iZwz9f17um10wphrf38ni8Z ~]# systemctl enable vsftpd
[root@aliyun ~]# systemctl stop firewalld [root@aliyun ~]# setenforce 0
FTP默认共享目录:/var/ftp
FTP Clinet(客户端):
[root@youngfit ~]# yum -y install lftp [root@youngfit ~]# vim /etc/hosts 192.168.62.136 youngfit.com [root@youngfit ~]# lftp youngfit.com
开启上传
#vim /etc/vsftpd/vsftpd.conf 27 anon_upload_enable=YES //上传文件 31 anon_mkdir_write_enable=YES //上传目录 anon_mkdir_write_enable=YES(下载文件) chmod -R 777 /var/ftp/pub(注意改权限)
使用用户登录
#lftp 172.16.70.251 -u wing
使用用户登录的时候,共享目录默认为用户的家目录
ftp的工作目录:/etc/vsftpd
客户端使用:
登录 #lftp 172.16.70.251 #lftp 172.16.70.251 -u wing -p 端口 > help mkdir //单独看mkdir的帮助 > help ls > ls //查看文件 > dir //同上 > cd pub > lcd /root/Desktop //切换本地目录 > get 文件 -o /root/Desktop //下载文件 > mirror 目录 指定的下载目录 //下载目录 > put 文件 //上传文件 > mirror -R 目录 //上传目录 > mkdir 目录 > rmdir 目录 > mget -c aaa.txt
vsftpd扩展功能 常用全局配置
listen_address=192.168.4.1 //设置监听的IP 地址 listen_port=21 //设置监听FTP 服务的端口号 write_enable=YES //是否启用写入权限 download_enable=YES //是否允许下载文件 userlist_enable=YES //是否启用user_list 列表文件 //文件在/etc/vsftpd目录下 userlist_deny=YES //是否禁用user_list 中的用户 max_clients=0 //限制并发客户端连接数 max_per_ip=0 //限制同一IP 地址的并发连接数
常用的匿名FTP 配置项
anonymous_enable=YES //启用匿名访问 anon_umask=022 //匿名用户所上传文件的权限掩码 anon_root=/var/ftp //匿名用户根目录 anon_upload_enable=YES //允许上传文件 anon_mkdir_write_enable=YES //允许创建目录 anon_other_write_enable=YES //开放其他写入权 anon_max_rate=0 //限制最大传输速率,单位为字节
常用的本地用户FTP 配置项
local_enable=YES //是否启用本地系统用户 local_umask=022 //本地用户所上传文件的权限掩码 local_root=/var/ftp //本地账户ftp根目录 local_max_rate=0 //限制最大传输速率(字节/秒) chroot_local_user=YES //限制所有本地用户在家目录里,g0W&�7bf
NFS远程共享存储
systemctl stop firewalld、systemctl disable firewalld
1.安装软件
yum -y install rpcbind(提供rpc协议)、yum -y install nfs-utils(主包提供文件系统)
启动服务------>这两个服务必须同时启用 systemctl start nfs systemctl start rpcbind
[root@nas ~]# vim /etc/exports /zhengzhou 192.168.122.0/24(rw,no_root_squash) //不限制root(当client端使用root挂载时,也有root权限) 挂载是root ,同样保持root权限 [root@nas ~]# systemctl start nfs-server [root@nas ~]# systemctl enable nfs-server
客户端:
[root@web1 ~]# yum -y install nfs-utils httpd [root@web1 ~]# systemctl start httpd [root@web1 ~]# systemctl enable httpd
-
手动挂载 [可选] [root@web1 ~]# mount -t nfs 192.168.122.59 :/zhengzhou /qf [root@web1 ~]# umount /qf
-
自动挂载到网站主目录 [root@web1 ~]# vim /etc/fstab 192.168.122.59 :/zhengzhou /var/www/html nfs defaults 0 0 [root@web1 ~]# mount -a
-
查看挂载 [root@web1 ~]# df nas:/webdata 7923136 692416 6821568 10% /var/www/html [root@web1 ~]# ls /qf index.html
wget
[root@youngfit ~]# wget --help |less [root@youngfit ~]# wget ftp://10.18.40.100/kvm-manager-centos [root@youngfit ~]# wget ftp://10.18.40.100/kvm-manager-centos -P /tmp/ //-P参数 下载到指定路径 [root@youngfit ~]# wget ftp://10.18.40.100/kvm-manager-centos -O /tmp/a.sh //-O 参数,下载到指定路径并修改名称 [root@youngfit ~]# wget -m ftp://zhufo.top/soft //-m 参数,将目录一并下载
DNS
一、hosts文件 作用: 实现名字解析,主要为本地主机名、集群节点提供快速解析 数据库: 平面式结构,集中式数据库 二、域名服务DNS 作用: 实现名字解析(例如将主机名解析为IP) 命名空间name space: 用于给互联网上的主机命名的一种机制 DNS数据库Datebase: 层次化的,分布式的数据库
DNS解析流程:
1. 客户端查询自己的缓存(hosts中的记录),如果没有将查询发送/etc/resolv.conf中的DNS服务器 2. 如果本地DNS服务器对于请求的信息具有权威性,会将(权威答案)发送到客户端。 3. 否则,如果DNS服务器在其缓存中有请求信息,则将(非权威答案)发送到客户端 4. 如果缓存中没有该查询信息,DNS服务器将搜索权威DNS服务器以查找信息: a. 从根区域开始,按照DNS层次结构向下搜索,直至对于信息具有权威的名称服务器,为客户端获答案 DNS服务器将信息传递给客户端 ,并在自己的缓存中保留一份,以备以后查找。
bind 主包 bind-utils 客户端测试工具(host 、dig 、nslookup) systemctl start named
工作目录: /etc 存放主配置文件(指定区域配置文件的作用)
[root@ICan named]# vim /etc/named.conf options { directory "/var/named"; }; zone "qianfeng.com" { type master; file "qianfeng.com.zone"; };
/var/named 区域配置文件(用来作解析,域名对应ip)
[root@ICan named]# vim /var/named/qianfeng.com.zone $TTL 86400 @ IN SOA wing.qianfeng.com. root.qianfeng.com ( 100000000 3H 15M 1W 1D) IN NS wing.qianfeng.com. wing IN A 192.168.14.130 //定义本机ip www.qianfeng.com. IN A 192.168.14.106 ftp.qianfeng.com. IN CNAME www.qianfeng.com.
[root@ICan named]# vim /etc/resolv.conf #Generated by NetworkManager #nameserver 211.138.24.66 nameserver 192.168.14.130 //dns服务端为本机ip
samba
Linux与Windows间的文件共享,也可以Linux之间。
客户端: #yum -y install samba-client samba samba-common #systemctl start smb; #mkdir /test ; #chmod 777 /test #vim /etc/samba/smb.conf [test] comment = share directory //描述 path = /test //共享目录 public = yes //允许访问 writable = yes //与readonly相反 #useradd kobe ;#smbpasswd -a kobe;#systemctl restart smb。 Windows: 网上邻居-->资源管理—>\192.168.14.23 linux挂载: mount //192.168.14.23/test /mnt -o username=kobe,pass=123
Wget??? rpm是已经有的安装包,yum是在下安装的(需要下载,可以自动解决依赖性)(/var/lib/rpm) Rpm:安装软件包,-i:安装,-v显示安装信息,-h显示安装过程,一般-ivh同时用,-U升级包,-e:卸载。卸载后直接跟包名。-q查询是否安装。-qa查询所有已安装包。配合管道符| -qi查询包详细信息,-p查询未安装包后跟全名。-l安装包位置(绝对路径),-qf反向查询文件是哪个包装的。-V:校验包做了哪些修改。Update 升级,后加包名。 du -sh +包名:查看包的大小。 时间戳:date -d “1970-01-01 16066 days” 用户模板目录: /etc /skel.可添加警告信息。
mysql
yum -y install mariadb mariadb-server [root@youngfit ~]# systemctl start mariadb [root@youngfit ~]# mysql create database jspgou default charset=utf8 show databases:查看数据库、use 库名:进入库、show tables:看列表、select * from 表名:看表内容、drop database 库名:删库、