如打开火狐浏览器:
一般这种情况下浏览器会出现乱码 echo $LANG 查看当前语言环境,解决方法:1、mkdir -p /usr/share/fonts/zh_CN/TrueType 2、去网上下载任意字体,拷贝到1创建的目录中,重新打开浏览器即可解决乱码问题:
登陆ssh的时候,有两种方式:
密码的验证方式:直接ssh server-ip 需要输入密码
秘钥的认证方式:可以让我们不需要输入密码,直接就可以登陆了,称之为建立ssh 的信任关系。
加密的基础知识
解密的类型:对称加密,非对称加密,哈希函数
创建秘钥:秘钥存在目录:.ssh/,创建秘钥:ssh-keygen ,会让你输入密码,这个就是私钥密码,配了秘钥登陆,每次都需要输入一次密码,这个密码不是对方服务器的密码,而是私钥密码, 所以一般是不会要这个私钥密码的,这时候可以不输人任何密码直接回车或者使用ssh-keygen -N “”,就是不创建私钥密码
公钥绑定:ssh-copy-id 用户@ip即可:
后续如果不想要这个公钥了,在创建秘钥服务器中删除即可:cd .ssh , rm -rf .ssh/id_rsa* ,也需要对被绑定服务器中authorized_keys 删除:cd .ssh , rm -rf authorized_keys 。如果想删除某一个秘钥登陆,只需去被绑定服务器中删除authorized_keys即可。
限制root直登:vim /etc/ssh/sshd_config 里面有一项是:#PermitRootLogin yes,把前面的# 删掉,并把yes改为no,就不可以使用root直接登陆了,但需要重启服务才会生效:systemcctl restart sshd
限制秘钥直登:vim /etc/ssh/sshd_config 里面有一项是:#PubkeAuthentication yes ,吧前面的#删掉 并把yes改为no即可,需要重启服务:systemctl restart sshd
限制密码验证:vim /etc/ssh/sshd_config 里面有一项是:#PasswordAuthentication yes ,吧前面的#删掉 并把yes改为no即可,需要重启服务:systemctl restart sshd
windows——RDP
xendesktop——LCA
vmwareview——CoIP
vnc/spice
装vnc的时候需要关闭防火墙:firewall-cmd --set-dafault-zone=trusted
开始装vnc:yum install -y vnc。
装完以后第一次运行vncserver会让输入一次密码,这两个密码是用于远程桌面的密码,这个密码保存在家目录下:.vnc/
root执行这个命令,所以root打开(创建)了一个vnc桌面:
roo下创建vnc用户:vncserver
查看以创建的vnc用户:vncserver -list :
此时如果你登陆:2号桌面的话,则使用的是root登陆的,密码就是刚刚第一次运行vncserver的时候输入的密码,如果想修改密码:vncpasswd
关闭(删除)vnc 如2号桌面:vncserver -kill :2
cat家目录下的vnc会发现里面储存有分辨率信息:
所以在创建新桌面的时候可以指定分辨率,如指定分辨率在3号桌面:vncserver -geometry 1024*768 :3
如果需要用其他用户登陆vnc:则su - 切换到指定用户 打开(创建)vnc即可;
也可以用另外一种方式创建vnc桌面:x0vncserver --passwordfile=.vnc/passwd
通过该命令创建后 vnc登陆桌面的时候就不需要指定几号桌面了:
vnc的好处是屏幕是同步的:适合多个场景同步教学等用途
注:需要吧共享连接勾上,否则会把前面所有已经连接的挤掉线;
或者通过 在开启vnc桌面的时候 强制开启共享桌面等功能:
AlwaysShared:强制开启共享连接
AcceptPointerEvents=0 :是否运行运行鼠标,0不可以 ,1可以
AcceptKeyEvents=0:是否运行使用键盘,0不可以,1可以
===================================================================
如果运行某命令报错了,应该清楚:什么报错了,怎么报错了,报错日志是什么;
日志都是默认开启的,查看命令:systemctl is-active rsyslog.service
日志服务运行的时候,它会自动读取自己的所有.conf配置文件:ls /etc/rsyslog.*
系统里内置很多种事件 ,每种事件里都有一个级别:事件.级别
查看日志的定义:vi /etc/rsyslog.conf ,可以看到里面什么事件什么级别分别存在什么日志目录:
/var/log/messages —包括整体系统信息,其中也包含系统启动期间的日志。此外, mail,cron,daemon,kern和auth等内容也记录在var/log/messages日志中。
/var/log/secure —包含验证和授权方面信息。例如,sshd会将所有信息记录(其中包括失败登录)在这里。
-/var/log/maillog /var/log/mail.log —包含来着系统运行电子邮件服务器的日志信息。例如,sendmail日志信息就全部送到这个文件中。
/var/log/cron — 每当cron进程开始一个工作时,就会将相关信息记录在这个文件中。
/var/log/spooler——与UUCP和news设备相关的日志信息
/var/log/boot.log — 包含系统启动时的日志。
:omusrmsg:*——警告信息
如:logger -p local5.emerg ‘报警信息’:模拟一个报警
‘-’ 表示异步sync,无-则表示同步async,异步的意思是先吧数据写在内存上,内存在慢慢写给硬盘,同步就是 写在内存上,内存同时写进硬盘。
如:日志中自定义事件vi /etc/rsyslog.conf
logger -p local5.debug ‘test11111’ 模拟事件,确实已经如预期写进了xx.log日志中
如:因为debug级别比较低所以local5.info 也会写进xx.log目录中,而且因为是info级别,也会写入到messages 中:logger -p local5.info ‘test22222’
简单来说就是把若干台服务器的日志信息 统一写入到某一台里面,这样就不用一台一台登陆查看日志了
如:我现在要把A服务器的日志文件配置到中央日志服务器中,则先在A服务器中指定中央服务器ip:vi /etc/rsyslog.conf
然后到中央服务器中接收A服务器日志:vi /etc/rsyslog.conf
中央服务器配置好其他服务器传送过来的目录后,需要开启2个模块(把#去掉) 并且需要更改防火墙zone:firewall-cmd --set-default-zone=trusted 或者直接关闭:systemctl stop firewalld
测试:在A服务器上 生成一个事件,然后去中央服务器查看是否有相应日志生成:logger -p local6.info ‘test1234567’
添加多台方法一样,只需要在配置文件里自定义中央服务器接收的名字一样即可,如上图中的local6.* 。 但是 这样有一个弊端,就是 如果匹配了多个服务器,全部写在里面会很乱,不容易查看对应服务器的日志信息:
所以日志应该分类,a服务器的日志放在a服务器主机名目录下,b服务器放在b服务器主机名下:所以需要进行以下操作:
首先,设置日志的服务器必须能互相解析,然后吧服务器ip和主机名信息添加到中央服务器/etc/hosts 中。主机名hostname查看
然后在中央服务器/etc/rsyslog.conf中日志存放目录顶端添加存放信息, :fromhost,isequal,“controller” /var/log/controller (日志信息来自controller的存放到该目录下,前提是必须添加解析),如果只添加这一行,虽然日志会如期存放到该目录下,但如果是info级别的,也会存放到中央服务器的messages等目录中,这显然是不希望发生的,所以还需要在添加一行,:fromhost,isequal,“controller” ~ (就是说匹配到这以后就停止往下匹配,也就不会写入到中与服务器的日志目录了)
测试:在服务器中 自定义事件,看中央服务器能否正常录入日志信息:[root@controller ~]# logger -p local6.info ‘fadsfdsagz1123’ ; [root@block1 ~]# logger -p local6.info ‘test123dfgasf1’
journalctl:查看日志命令 全部日志都在里面,这个数据一般没有参照价值,所以需要配合需求参数使用
journalctl -f :动态查看最新事件日志,一般打开多个窗口,一个窗口用来查看日志,其他窗口做操作,查看问题。 ctrl+c退出
journalctl -p 事件名:查看事件及以上日志,如查看err事件:journalctl -p err
journalctl --since “时间” :查看从该时间到现在的所有日志,如查看20191020日20点整到现在的所有日志:journactl --since “2019-10-20 20:00:00” ,或查看区间日志,如查看20191020日20点整到20191021日00点20分的所有日志:journalctl --since “2019-10-20 20:00:00” --until “2019-10-21 00:20:00”
简单提一下时间设置
修改时间:date 月日时分年 如:date 102112302019 (20191021,12:30),date -s “20191023 12:31:25”
还原时间:hwclock -s
timedatectl:查看时间详细,如果有告警,执行timedatectl set-local-rtc 0即可
查看所有时区:timedatectl list-timezones
修改时区:timedatectl set-timezone 时区名称 ,如修改为abidjan:timedatectl set-timezone Africa/Abidjan
…
开始配置ntp服务:先禁止chronyd服务(避免启动了chrony而冲突):systemctl stop chronyd.service , 关闭开启自启:systemctl disable chronyd.service ,查看状态: systemctl status chronyd.service
安装ntp:yum -y install ntp
安装完成后编辑文件:vi /etc/ntp.conf 同网段只需要 在主服务器 server处添加一行 server 127.127.1.0 (本机时间)即可,需把其他server注释掉
在客服端服务器上编辑文件:vi /etc/ntp.conf 中 server中添加主服务器ip即可:
客户端运行 ntpq -p 查看状态, ntpdate -u 主服务器ip ,实现与主服务端同步,同步成功后date查看时间与主服务器时间一致,成功。
如果服务器与主服务器的晶体时间不一样,则时间过一天左右时间就不会相同了,所以这时候需要在其他服务器上执行:0 12 * * * /usr/sbin/ntpdate 0.0.0.0(主服务器ip,每天的12点整 同步一次时间) 如果不是最小化安装,可以: yum install -y system-config-date ,安装完成后执行:system-config-date & , 在里面添加ntp主服务器ip即可,(如果在网络上同步日期和时间这一栏是灰色的无法选择,则开启ntp服务:timedatectl set-ntp true ):
查看状态:chronyc sources -v 如果同步成功会显示 *
======================================================================
归档archive:把多个文件放在一个东西里(类似于windows中打打压缩包)
常见的归档工具:tar,cpio
语法:
基本命令
-c: 建立压缩档案
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件
压缩相关命令
-z:有gzip属性的
-j:有bz2属性的
-Z:有compress属性的
-v:显示所有过程
-O:将文件解开到标准输出
-f: 使用档案名字,这个参数是最后一个参数,后面只能接档案名。
tar cvf 归档文件名.tar file1 file2 file3 …
吧上面几个文件归档到file.tar里了,这时候归档完成后 源文件还是在的,如果想归档完成之后,源文件自动删除,在最后面加上 --remove-files :
在不解压的情况下,查看这个归档文件的内容:tar tf 文件名 :
解压jdk到指定文件夹 -C :(注:下列所有参数的- 可忽略 如 tar xzvf )
tar -xzvf jdk-8u131-linux-x64.tar.gz -C /usr/local/java
1.这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。
tar -cvf all.tar *.jpg
2.这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。
tar -rvf all.tar *.gif
3.这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。
tar -uf all.tar logo.gif
4.这条命令是列出all.tar包中所有文件,-t是列出文件的意思
tar -tvf all.tar
5.这条命令是解出all.tar包中所有文件,-x是解开的意思
tar -xvf all.tar
6.这条命令是解除num.tar包中的其中某个文件,-x是解开的意思
tar -xvf num.tar 1 (如果需要解开其中多个,可直接在后面追加文件名即可 tar -xf num.rat 1 2 3 …)
压缩
//将目录里所有jpg文件打包成tar.jpg
tar -cvf jpg.tar *.jpg
//将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩 -z(文件大小会变小),生成一个gzip压缩过的包,命名为jpg.tar.gz
tar -czvf jpg.tar.gz *.jpg
//将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩 -j(文件大小会变更小),生成一个bzip2压缩过的包,命名为jpg.tar.bz2
tar -cjvf jpg.tar.bz2 *.jpg
//将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包 -Z ,命名为jpg.tar.Z
tar -cZvf jpg.tar.Z *.jpg
解档:
tar xvf 归档文件
tar xvf 归档文件名 归档文件中的文件名 (tar tf 查看归档文件中的文件) (如果需要解开其中多个,可直接在后面追加文件名即可 tar -xf num.rat 1 2 3 …)
在当前文件创建一个文件名为file的100M文件:dd if=/dev/zero of=file bs=1M count=100 (zero无穷大小 可以随便提取,if 输出,of写入,bs大小,count数量,该方法也可以用来测试硬盘读写速度,吧count换成2048,看写完需要多少时间)
一般都2种分别为:scp和rsync——都基于ssh
scp ——两台互相拷文件的服务器都必须有scp命令,否则无法拷贝
scp -选项 /path1/file 目标ip:/path2 ——从当前服务器把文件拷贝到目标服务器
如果不想输入密码就可以远程远程传输的话,需要建立ssh的信任关系 ,也就是无密码登陆。ssh-keygen , ssh-copy-id 0.0.0.0
如果拷贝目录文件,需要加上选项r scp -r 目录名/ 0.0.0.0:file 如:scp -r a/ 192.168.127.136:/ 把当前目录下的a目录拷贝对该服务器的/目录下
也可以在当前服务器拷贝其他服务器的文件:scp ip:目录文件 当前目录文件 如:scp 192.168.127.136:/1 . 吧对方服务器根目录下的1考本到当前位置. 也可以指定任意位置。
rsync使用与scp大致一致 推荐使用scp。 rsync -选项 文件 ip:地址 如:rsync anaconda-ks.cfg 192.168.127.136:/opt 拷贝anaconda-ks.cfg 到目标服务器的opt目录下
windows→linux
lrzsz,确保在服务器上安装了lrzsz 没有的话就yum -y install lrzsz ,然后通过某个客户端比如xshell,secureCRT等工具连接到服务器上,如果使用的是putty的话,则不支持。
要把windows里的文件拷贝到linux里的话,直接吧文件拖终端里或输入rz命令,会让我们选择windows里文件:
linux→windows
确保在服务器上安装了lrzsz 没有的话就yum -y install lrzsz ,然后通过某个客户端比如xshell,secureCRT等工具连接到服务器上,如果使用的是putty的话,则不支持。
然后在终端输入sz 文件名 即可让你选择保存位置:如 sz aa.sh
也可以使用xftp 等工具互相上传文件。
==================================================================
源码包需要安装gcc:yum -y install gcc
比如linux服务器现有一个压缩文件figlet-2.2.4.tar.gz(一般是网上下载拷贝到服务器上的)。
第一步需要解压文件:tar zxvf figlet-2.2.4.tar.gz
解压完成以后进入解压的目录中: cd figlet-2.2.4 (注:如果没有Makefile文件的话,一般会有conflgure文件,./conflgure --help 查看帮助,里面有许多选项,./conflgure --选项1 --选项2 … 就可以生成Makefile文件,再次运行make && make install)
进入解压目录以后,编译并安装:make && make install ,make是编译 只有编译成功后才会执行安装。
rpm–redht package manger 本质上是通过源码包,给我们编译出来的一种安装包。
rpm功能十分强大可以安装,查询,卸载,更新,验证等等操作,与第一个选项是有关系的
强调:安装包指的是带有后缀的完整的名字 包名–vsftpd
安装一个软件包:rpm -ivh 安装包(安装包是一个整体,包名仅仅是开头的名字)