Linux内核怎么编译并生效?
wget 网页链接
rpm -ivh kernel-3.10.0-514.16.1.el7.src.rpm
cd ~/rpmbuild/SOURCES/
tar Jxvf linux-3.10.0-514.16.1.el7.tar.xz
cd linux-3.10.0-514.16.1.el7
cp /boot/config-($uname -r) .config
make -j40
make modules
make modules_install
make install
grub2-mkconfig -o /boot/grub2/grub.cfg
cat /boot/grub2/grub.cfg|grep menuentry
grub2-set-default '编译后的内核版本'
reboot
零基础怎么自学入门linux系统?
嵌入式Linux学习大致分为三部分:
A、 Linux操作系统使用
B、嵌入式Linux C语言编程
C、嵌入式Linux C语言数据结构及经典算法编程
学习Linux要达到什么程度?
掌握至少50个以上的常用命令。
熟悉Gnome/KDE等X-Windows桌面环境操作 。
掌握.tgz、.rpm等软件包的常用安装方法
学习添加外设,安装设备驱动程序(比如网卡)
熟悉Grub/Lilo引导器及简单的修复操作 。
熟悉Linux文件系统 和目录结构。
掌握vi,gcc,[gdb]等常用编辑器,编译器,调试器 。
理解shell别名、管道、I/O重定向、输入和输出以及shell脚本编程。
学习Linux环境下的组网。
今天给大家分享的Linux知识是:虚拟机和真实主机如何通讯?
首先了解一下通讯原理:
就是内核搭建一个bro接口,让虚拟机和主机直接通讯,不需要通过路由器通讯,不会受路由器的计算影响。
下面上干货,教大家如何配置
在真实主机上操作
1.进入网卡配置指向目录
cd /etc/sysconfig/network-scripts/
2.查看网卡配置指向目录里面内容
[root@foundation50 network-scripts] ls
ifcfg-br0 ifcfg-enp4s0f1 ifcfg-Wired_connection_1
ifcfg-CMCC-ckx7 ifcfg-I-SHAANXI-XiXian
3.将wifi等无关的网络配置文件删除
[root@foundation50 network-scripts]# rm -fr ifcfg-CMCC-ckx7 ifcfg-Wired_connection_1 ifcfg-I-SHAANXI-XiXian
4.编写ifcfg-enp4s0f1文件(ifcfg-一般后面跟的都是网卡名)
[root@foundation50 network-scripts]# cat ifcfg-enp4s0f1
DEVICE=enp4s0f1 设备名
BOOTPROTO=none 网卡工作方式为静态
ONBOOT=yes 网络启动服务的时候网卡自动激活
BRIDGE=br0 网桥接口叫br0
5.编写ifcfg-br0文件
[root@foundation50 network-scripts]# vim ifcfg-br0 编辑br0
DEVICE=br0
BOOTPROTO=none
IPADDR=172.25.254.50
PREFIX=24 子网掩码
ONBOOT=yes
TYPE=Bridge
6.[root@foundation50 network-scripts]# reboot 重启
打开虚拟机,看到如下图所示,就说明配置好了,真机和虚拟机就可以通讯了,小伙伴们可以试试哦,如有不明白的地方可以留言哦。
实时获取linux内核函数的调用栈以及各个子函数的执行时间,linux ftrace是最适合的。通过ftrace进行linux内核调试的步骤如下:
1、进入debugfs目录
$ cd /sys/kernel/debug/tracing
如果找不到目录,执行下列命令挂载debugfs:
$ mount -t debugfs nodev /sys/kernel/debug
2、查询支持的追踪器
$ cat available_tracers
常用的有两种:
- function 表示跟踪函数的执行;
- function_graph 则是跟踪函数的调用关系;
3、查看支持追踪的内核函数和事件。其中函数就是内核中的函数名,而事件,则是内核源码中预先定义的跟踪点。
//查看内核函数
$ cat available_filter_functions
//查看事件
$ cat available_events
4、设置追踪函数:
$ echo do_sys_open > set_graph_function
5、设置追踪器
$ echo function_graph > current_tracer
$ echo funcgraph-proc > trace_options
6、开启追踪
$ echo 1 > tracing_on
7、执行一个 ls 命令后,再关闭跟踪
$ ls
$ echo 0 > tracing_on
8、最后一步,查看跟踪结果
$ cat trace
不过ftrace使用起来操作步骤稍微有点繁琐,作为ftrace的改良版,trace-cmd使用起来更方便些,过程如下:
1、记录:
$ trace-cmd record -p function_graph -g do_sys_open -O funcgraph-proc ls
2、trace-cmd的输出和ftrace是类似的:
$ trace-cmd report
#linux# #程序员# #运维# #Linux# #计算机# #操作系统#
昨天公司新到一台服务器,安排新同事去装一下系统,配置一下IP。
服务器上架机柜,开机,发现系统已经做好了,centos7,他竟然说对命令一知半解,难道上学的时候不学命令行了吗?好吧,创建个虚拟机,演示一遍,然后自己去操作吧。centos配置IP命令如下
cd /etc/sysconfig/network-scripts/
ls
vi ifcfg-ens33
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.0.230
GATEWAY=192.168.0.1
NETMASK=255.255.255.0
DNS1=192.168.0.1
DNS2=8.8.8.8
:+wq
然后重启网络服务service network restart,ifconfig查看ip地址,接着ping百度。
其实我之前更新了一部分linux基础的学习实验教程,我说你没事你翻一下看看,多练练自然也就上手了。像ls、ip addr、cd、ping等等这些基础的命令敲一遍就记住了。
恩,这些运维实践小技术后期加到我的网络管理指导手册里。#网络#
linux下部署flink入门
在flink官方网站下载flink-1.12.1-bin-scala_2.12.tgz
tar -zvxf flink-1.12.1-bin-scala_2.12.tgz
进入conf目录,主要修改workers,masters,flink-conf.yaml
学习的话,默认的就可以启动了
cd bin
./start-cluster.sh
在浏览器里访问 localhost:8081可以访问到flink的webui则说明flink的部署是OK的
对于在webui上提交任务的方式太鸡肋,基本上都是用shell脚本来提交flink的任务
./flink run -c org.apache.flink.streaming.example.socket.SocketWindowWordCount ../examples/streaming/SocketWindowWordCount.jar --hostname localhost --port 1234
使用
nc -l 1234
即可测试flink入门级的部署
百度网盘linux命令行工具下载和安装
wget 网页链接
unzip BaiduPCS-Go-v3.6.2-linux-amd64.zip
rm BaiduPCS-Go-v3.6.2-linux-amd64.zip
cd BaiduPCS-Go-v3.6.2-linux-amd64/
ls
BaiduPCS-Go
登录并进入百度云盘中的某个目录
d abc.zip --saveto ./ #下载abc.zip文件
在linux Ubuntu 中新建并执行python程序
1、进入目录
$ cd '/ home/user/dasktop/'
2、建立py文件并开始写入代码
$ touch mycode.py
3、运行
$ python3 mycode.py
=====
还可以尝试直接执行mycode.py
执行 $ ./mycode.py
系统报错 bash: ./mycode.py 权限不够
修改权限:
$ chmod a+x mycode.py
获取python执行路径:
$ which python
可能返回/usr/bin/python
再在my.py文件的首行加入:
#!/usr/bin/python
或者 #!/usr/bin/env python
最后直接执行:
$ ./mycode.py
#技术#
今天收获:仍然来自小林coding公众号。
(1)
说在三次握手的时候,有一个半连接队列和全连接队列的概念。半连接队列是第一次握手,客户端发起一个SYN给服务端,服务端如果此时处于listen()函数监听的状态,其Linux内核会维护一个队列,把这个请求连接放到这个队列里。然后在第三次握手,客户端返回一个ack应答给服务端的时候,内核会把之前加入半连接队列的连接移除,然后添加到accept()队列(也就是全连接队列)里,等待accept()函数调用。
(2)
查看全连接队列大小的方式:
ss -lnt (在linsten状态的命令,l就代表正在监听的socket),其中显示出来的Recv-Q表示现在已完成三次握手并等待accept()函数调用的连接个数。Send-Q则代表全连接队列的最大队列长度。
ss -nt (非listen状态下)Recv-Q:已收到但未被程序读取的字节数。Send-Q:已发送但未收到确认的字节数。 (老实说这个具体指什么我还不太清楚)
经过实验得出,全连接队列如果太小,就会经常导致队列溢出,内核自动把溢出的连接抛弃,这也限制了客户端的最大请求量。设置tcp_abort_on_overflow=0会抛弃,设置为1那么溢出的时候服务端会向客户端发送一个RST复位报文告诉说这个连接因为溢出失败了。一般设置为默认值0更有利于应对突发流量。
修改全连接最大队列长度的办法:
length=min(somaxconn,backlog)
echo 5000 > /pro/sys/net/core/somaxconn (修改somaxconn)
cd /usr/local/nginx/conf/nginx.conf
把这个文件中
server{
listen 8088 default backlog=5000;
}(修改backlog)
最后重启服务器就好。
查看由于 accept 连接队列已满,而被丢弃的连接 :
netstat -s | grep overflowed (结果一直在变动,需要多次查询)
(3)
查看半连接队列的方法:
没有ss命令,直接查看现在服务端处于SYN_RECV状态下的tcp连接数:
netstat -natp | grep SYN_RECV | wc -l (就会显示数量,具体参数可以百度)
插曲:SYN洪泛、SYN攻击、DDos攻击的原理:就是客户端对服务端一直发送SYN包,但是不回应ACK包。就会很快导致半连接队列溢出。
半连接队列最大值的计算方法:
如果 /pro/sys/net/ipv4/tcp_max_syn_backlog>min(somaxconn,backlog)
max_qlen_log= min(somaxconn,backlog) * 2; (半连接队列最大值)
如果/pro/sys/net/ipv4/tcp_max_syn_backlogmax_qlen_log= /pro/sys/net/ipv4/tcp_max_syn_backlog *2
不过这个当前队列的最大长度并不代表服务端处于SYN_REVC状态的最大个数。原因不好理解,暂时先放下。
半连接队列满了不一定丢弃,如果开启tcp_syncookies可以实现在不使用半连接队列的情况下成功建立连接。开启方法echo 1 > /pro/sys/net/ipv4/tcp_syncookies
防御SYN攻击就可以开启tcp_syncookies。另外还可以增大半连接队列,或者减少SYN+ACK重传次数。
查看因为半连接队列已满而丢弃的连接个数的命令:
netstat -s | grep "SYNs to LISTEN" (结果一直在变动,需要多次查询)
(4)
第一次看这篇文章还在疑惑,全连接队列最大长度设为128,怎么会建立3万条连接,主要原因是不是一直放在队列里,会因为accpet()函数的调用而减少的。
web开发时,有时需要使用https链接测试。要使用https功能,必须要使用ssl证书,阿里云有提供一年期的免费证书,可以在官网注册申领。因为想多掌握一些linux系统的使用,决定学习一下生成自签名的SSL证书,以及配置nginx实现https连接。特记录如下:
服务器环境:ubuntu22.04,nginx1.18.0
一、检查或安装openssl
生成自签名ssl证书需要openssl功能,可以使用命令查看系统是否已经安装:
openssl version -a
本机显示“OpenSSL 3.0.2 15 Mar 2022 (Library: OpenSSL 3.0.2 15 Mar 2022)”
如果没有类似的显示,可以使用以下命令安装:
sudo apt install openssl
二、创建并签发SSL证书
(1)创建一个目录存放证书。
sudo mkdir -p /etc/nginx/cert/
(2)进入此目录并执行openssl命令。
cd /etc/nginx/cert/
(3)制作并签发证书
1、 sudo openssl genrsa -des3 -out ca.key 2048
# 生成私钥文件。输入密码并确认密码。密码一定要记住,后面的步骤将会用到。
2、 sudo openssl req -new -x509 -days 3650 -key ca.key -out ca.crt
# 生成根证书。执行上面这一行命令,提示输入密码后,会出现多项问题,分别是国家=CN,省份=你自己的所在省份,城市=你所在的城市,后面三项可以直接回车即可
3、 sudo openssl genrsa -des3 -out client.key 2048
# 生成服务器证书密钥文件。提示输入密码并确认密码
4、 sudo openssl req -new -key client.key -out client.csr
# 生成服务器证书申请文件client.csr,填写问题,方法同上
5、sudo openssl x509 -req -days 3650 -in client.csr -signkey client.key -out client.pem
# 签发并生成证书文件client.pem,也可以生成crt格式
6、sudo openssl rsa -in client.key -out pub_client.key
# 从client.key中取出公钥,可以使用ls命令查看生成的情况:
(ca.crt、ca.key、ca.srl client.csr、client.key、client.pem、pub_client.key)
自此,简单的自签名证书创建完毕。
三、使用证书实现https连接
因小猪猪比较懒,对ubuntu也不是很懂,之前已经直接在/etc/nginx/sites-enabled/目录下创建好了站点配置文件test.com。切换到此目录,下面以配置test.com文件为例:
(1)打开配置文件
sudo vim test.com
(2)修改配置文件,按下“i”键进入编辑模式,在server区块中修改和添加以下内容
listen 443 ssl;
listen [::]:443 ssl;
# ssl证书地址
ssl_certificate /etc/nginx/cert/client.pem; # pem文件的路径
ssl_certificate_key /etc/nginx/cert/pub_client.key; # key文件的路径
# ssl相关配置
ssl_session_timeout 5m; # 缓存有效期
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; # 加密算法
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # 安全链接可选的加密协议
ssl_prefer_server_ciphers off; # 使用服务器端的首选算法
ssl_verify_client off; # 开启客户端证书验证
(3)保存配置并重启nginx服务
配置完成后,按“ESC”键退出编辑模式,再输入“:wq”保存并退出vim编辑器。
输入命令重启nginx服务:service nginx restart
(注意证书是自签名的,浏览器会提示不受信任。)
四、实现http默认跳转到https,支持泛域名
配置方法见下图,测试有效!
若非生活所迫,谁愿意把自己搞得一身才华!—— 与辛勤的你共勉
小猪猪学linux之使用ubuntu server安装php和swoole。
今天安装上了swoole,顺便记录一下安装php和nginx的过程。
安装前可以先来一套常规招式热热身(如果没有修改成国内软件源的请先更新一下,不然万一有更新,可能会非常慢,修改方法可查阅本人前面的文章):
sudo apt update
sudo apt upgrade
一、安装php8.1
常用的web服务器有apache、nginx等,本次学习选择是php+nginx,使用php-fpm管理cgi连接,所以不打算使用apache。如果友友只是想简单地安装一个php的运行环境,可以直接运行php安装命令:
sudo apt install php8.1
友好的ubuntu会聪明地为你安装好php并贴心地安装上apache,一个可用的php运行环境就搭建好了。经过仔细看安装提示,猜测 php 需要在 libapache2-mod, php-cgi 或 php-fpm 等环境之一运行,如果没有指定则默认选了libapache2-mod,所以会推荐安装 apache。如果只需要php-fpm,则可以用以下安装命令:
sudo apt install php8.1-fpm php8.1
(提示:如果安装了推荐的php8.1后不想用apache,可以使用命令sudo apt pruge php8.1清除掉再重新指定php8.1-fpm的方式安装,有没有更简单的清理方法?)
安装完成后,可以用命令“php -v”来查看。
接下来简单配置一下php-fpm:
1、进入fpm配置目录:cd /etc/php/8.1/fpm
2、使用ls命令查看一下:ls
(conf.d、php-fpm.conf、php.ini、pool.d)
3、修改php-fpm.conf:sudo vi php-fpm.conf
打开后按“i”键进入编辑模式,用方向键移动光标的位置,找到pid和error_log分别填上内容,可参考以下设置:
pid=/run/php/php8.1-fpm.pid
error_log = /var/log/php8.1-fpm.log
完成后按“ESC”键退出编辑模式,输入命令“:wq”保存并退出vi编辑器。
二、安装nginx
直接使用安装命令并根据提示操作即可:
sudo apt install nginx
完成后可以查看一下版本顺便检验一下是否安装成功:nginx -v
可以使用命令“service nginx start”启动nginx服务。此时如果在浏览器上输入nginx服务对应的服务器ip,应该就能看到“Welcome to nginx”的提示页面了。
三、安装Swoole
swoole官方提供了清晰的安装方法,只需按部就班完成即可。swoole可以使用phpize从源码编译安装和pecl安装两种方式:
(1)使用phpize从源码编译安装
1、如果没有phpize需要使用 sudo apt install php-dev 来安装 phpize
sudo apt install php8.1-dev
Do you want to continue?[Y/n] Y
2、下载swoole源码:
wget https://github.com/swoole/swoole-src/archive/refs/tags/v4.8.11.tar.gz
3、解压并进入源码目录:
tar -zxvf v4.8.11.tar.gz
cd swoole-src-4.8.11/
4、使用phpize+make install完成安装:
phpize &&
./configure
--enable-openssl
--enable-http2 &&
make && sudo make install
(2)使用php官方提供的pecl命令安装
pecl install swoole
以上任意一种方式安装即可。
安装完成后需要添加 Swoole扩展到 php.ini。可以使用命令php --ini查看php.ini的位置,找到位置后使用sudo vi命令打开 php.ini,加入下面这行:
extension=swoole.so
修改完成后保存,重启php-fpm服务:
service php-fpm restart
查看swoole是否被正确地添加,成功则返回“swoole”:
php -m | grep swoole
[耶][小鼓掌][小鼓掌][鼓掌][鼓掌][鼓掌]
linux中使用smbclient命令访问Windows共享资源
SMB与CIFS为服务器通信协议。smbclient(samba client)可让Linux系统存取Windows系统所分享的资源。
语法格式 smbclient [参数]
常用参数:
-L 显示服务器端所分享出来的所有资源
-U 指定用户名称
-s 指定smb.conf所在的目录
-O 设置用户端TCP连接槽的选项
-N 不用询问密码
参考实例
1、像ftp客户端一样使用smbclient :
smbclient //网页链接 -U username%password
执行smbclient命令成功后,进入smbclient环境,出现提示符:smb:/>
这里有许多命令和ftp命令相似,如cd 、lcd、get、megt、put、mput等。通过这些命令,我们可以访问远程主机的共享资源。
2、列出某个IP地址所提供的共享文件夹:
smbclient -L 198.168.0.1 -U username%password
3、直接一次性使用smbclient命令:
smbclient -c "ls" //网页链接 -U username%password
或者:
smbclient //网页链接 -U username%password smb:/>ls
4、创建一个共享文件夹:
smbclient -c "mkdir share1" //网页链接 -U username%password
Hiren's BootCD PE x64 v1.0.2(2021 年 7 月 1 日):
Hiren的BootCD PE Windows 10核心已更新至版本21H1(内部版本19043.928)。
IO、网络和存储类别中集成了 195 个新驱动程序。
几乎所有的实用程序都已更新。
新增实用程序:DMDE,ReclaiMe,PhotoRec,不可阻挡的复印机,测试磁盘,水晶磁盘信息,DiskGenius,EaseUS分区大师,Macrorit分区专家,橡皮擦,VLC媒体播放器,迈克菲毒刺,卡巴斯基病毒清除工具,Windows登录解锁器。
删除的实用程序:运行时(GetDataBack for FAT,GetDataBack for NTFS,GetDataBack Simple,NAS Data Recovery,RAID Reconstructor,RAID Recovery for Windows,Captain Nemo,DiskExplorer for FAT,DiskExplorer for Linux,DiskExplorer for NTFS),CCleaner,Teamviewer。
测开经典面试题2
自动化软件测试
你来说一下BUG的生命周期?
❶参考点
bug处理流程
❷ 面试命中率 99%
❸参考答案
New:发现bug,未经评审决定是否指派给开发人员进行修改。
Open:确认bug,并且认为需要进行修改,指派给相应的开发人员。
Fixed:开发人员进行修改后标识成修改状态,有待测试人员的回归测试验证。
Rejected:如果认为不是Bug,则拒绝修改。
Delay:如果认为暂时不需要修改或暂时不能修改,则延后修改。
Closed:修改状态的Bug经测试人员的回归测斌验证通过,则关闭Bug。
Reopen:如果经验证Bug仍然存在,则需要重新打开Bug,开发人员重新修改。
给你一个网站,你将如何开展测试?
❶参考点
对于软件测试流程的理解
考察测试项目的计划安排能力
❷ 面试命中率 90%
❸参考答案
1、查找需求说明、网站设计等相关文档,分析测试需求。
2、制定测试计划,确定测试范围和测试策略。
3、设计测试用例,包括功能、兼容、性能、安全等方面
4、开展测试执行
5、回归测试及测试总结
说一下什么是事务?
❶参考点
事务的基本概念
❷ 面试命中率 90%
❸参考答案
事务:是数据库操作的最小工作单元,是作为单个逻辑工作单元执行的一系列操作;这些操作作为一个整体一起向系统提交,要么都执行、要么都不执行;事务是一组不可再分割的操作集合(工作逻辑单元);
原子性(Atomicity):事务中的全部操作在数据库中是不可分割的,要么全部完成,要么均不执行。
一致性(Consistency):几个并行执行的事务,其执行结果必须与按某一顺序串行执行的结果相一致。
隔离性(Isolation):事务的执行不受其他事务的干扰,事务执行的中间结果对其他事务必须是透明的。
持久性(Durability):对于任意已提交事务,系统必须保证该事务对数据库的改变不被丢失
说一下主键,外键和索引的区别?
❶参考点
对数据库常用索引的理解
❷ 面试命中率 90%
❸参考答案
定义
主键:唯一标识一条记录,不能有重复的,不允许为空
外键:表的外键是另一表的主键, 外键可以有重复的, 可以是空值
索引:该字段没有重复值,但可以有一个空值
作用
主键:用来保证数据完整性
外键:用来和其他表建立联系用的
索引:提高查询排序的速度
个数
主键:只能有一个
外键:一个表可以有多个外键
索引:一个表可以有多个索引
drop、delete、truncate三者的区别?
❶
参考点
对关系数 据库3个删除SQL了解程度
比较3个删除SQ L的差异
❷面试命中率 85%
❸参考答案
都表示删除,但是三者有一些差别:
Delete用来删除表的全部或者一部分数据行,执行delete之后,用户需要提交(commmit)或者回滚(rollback)来执行删除或者撤销删除。会触发这个表上所有的delete触发器
Truncate删除表中的所有数据,这个操作不能回滚,也不会触发这个表上的触发器,TRUNCATE比delete更快,占用的空间更小
Drop命令从数据库中删除表,所有的数据行,索引和权限也会被删除,所有的DML触发器也不会被触发,这个命令也不能回滚。
列举几种表连接的方式,它们有什么区别?
❶参考点
表连接方 式的列举
不同连 接方 式的区别
❷ 面试命中率 90%
❸参考答案
左连接: 左边为主表表数据全部显示, 匹配表的不匹配部分不显示
右连接: 右边为主表表数据全部显示, 匹配表的不匹配部分不显示
内连接: 只有两个元素表相匹配的才能在结果集中显示
全外连接: 连接中的不匹配的数据全部会显示出来
交叉连接: 笛卡尔乘积, 显示的结果是连接表数的乘积
说几个工作中常用的Linux命令
❶参考点
考察是否有Linux使用经验
考察对Linux熟悉程度
❷ 面试命中率 99%
❸参考答案
cd:切换目录
ls:查看文件列表
cp:拷贝文件
mv:移动文件
rm:删除文件
chmod:设置文件权限
cat:浏览文件内容
vi:文件编辑
find:搜索文件
grep:过滤文件内容
在Linux中如何查找日志文件中的Error信息?
❶参考点
考察工作中常用的Linux命令
考察对错 误 日志的查看方法
❷ 面试命中率 85%
❸参考答案
Linux中通过grep命令可以过滤文本文件中的指定信息,如
grep "Error" access.log
以上命令会将access.log中包含Error的行打印出来。
大家早上好,我是博哥爱运维。
自从一直分享【今日头条】网页链接这套kubernetes(k8s)架构师课程以来,收到了很多爱好技术朋友的关注和支持,博哥在这里谢谢你们了。
有很多朋友私信博哥,问了很多问题,我就其中几个大家关注的问题趁着早上还没开工和大家说说:
1、博哥,我只有简单的linux基础,能学习这个k8s课程嘛?k8s怎么复杂,我不知道能不能学会?
博哥答:有linux简单基础就可以学好博哥这套k8s课程。这套k8s课程,是浓缩了博哥自己从0开始学习k8s,到在工作生产中使用维护k8s的所有经验总结,是完完全全k8s实战的积累,博哥维护过多套k8s集群,有线下机房自建的k8s,有阿里云自建和阿里云托管的k8s服务,华为云的cce托管k8s服务,百度云的自建k8s集群,海外aws托管k8s服务EKS,所以整体维护k8s经验还算比较多,我深知k8s组件很多很复杂,所以博哥在整理课程文档的时候,是尽量以博哥已经消化理解后,同时再录制教学视频用通俗易懂点语言来讲给大家听的,就是为了让大家都能比较轻松快速的掌握k8s这个热门技术。
2、这个课程看上去不像架构师课程吧。
博哥答:这套课程还在陆续更新中,后面有具体从0实施k8s整体架构的分享,以及devops自动化CI/CD的分享等等,所有课程都是工作经验积累的分享,乃至所有配置都是直接线上脱敏后拿下来给大家讲解的。我深知k8s组件很多很复杂,所以博哥在整理课程文档的时候,是尽量以博哥已经消化理解后,同时再录制教学视频用通俗易懂点语言来讲给大家听的,就是为了让大家都能比较轻松快速的掌握k8s这个热门技术。所以这和世面上大部分k8s课程不一样,我不想一上来就大篇大篇的理论文档甩给大家,这样只会让很多想学习k8s的同学知难而退,错过了当下学习k8s技术的最好时机。
博哥玩自媒体不溜,也没有在视频包装上花太多时间,我只想做好技术分享,所以有些时候讲的有些不清晰的地方,还请大家多多留言指正。
#运维# #Kubernetes# #docker# #程序员# #Linux#
通俗理解linux中文件和目录的rwx权限
文件权限:主要针对文件内容而言的
r(read):可以读取文件的内容。
w(write):可以编辑、新增、修改文件内容,但不能删除文件。
x(execute):可以被系统执行,在liunx系统中,档案是否能被执行,由x权限决定,跟扩展名无关,x代表具有可执行的能力,能不能执行成功,还要看文件的内容。
目录权限
r(read contents in directory):读取目录结构的权限,可以查询该目录下的文件名数据,可以利用ls命令将目录内容列表显示出来。
w(modify contents of directoty):更改目录结构列表的权限,包括:
1、新建文件和目录
2、删除已经存在的文件和目录
3、重命名已经存在的文件和目录
4、转移该目录下的文件和目录
x(access directory):可以用cd命令进入该目录作为工作目录 。
VirtualBox 虚拟机复制
常用的虚拟机分别是 VMWare 和 VirtualBox。不过 VMWare 只有30天的免费试用期,而 VirtualBox 则是开源免费试用。使用虚拟机容器通过复制可以快速建立多个一模一样的虚拟电脑,但是它们有不同的虚拟硬件。基于 VirtualBox 如何复制多个虚拟机呢?
用虚拟光驱安装第一台虚拟电脑,安装后的机器基本信息如下:
在 VirtualBox 下复制虚拟机
(1)关闭虚拟机,让虚拟机处于关机状态;
(2)在虚拟机上右键 -> 复制,设置虚拟的名字,勾选重新初始化所有网卡的MAC地址;
重命名、选择存放路径、重新生成 MAC 地址
点击下一步,选择完全复制
复制完成后,新的虚拟机的网络信息 MAC 地址发生了变化
进入新的虚拟电脑,发现 ip 和拷贝源的电脑相同,这个时候需要修改 enp0s3 和 mac。在新虚拟机上输入 ifconfig -a,可以看到网络名称为:enp0s3
修改 eth 文件;进入 cd /etc/sysconfig/network-scripts/ 目录,重命名文件,执行:mv ifcfg-enp0s3 ifcfg-enp0s4
执行 vi ifcfg-enp0s4 , 修改如下信息
新的虚拟机的配置信息
老的虚拟机的配置信息
修改后重启 Linux 系统:reboot,或者重启网卡 service network restart
修改 hostname, 默认clone的虚拟机的hostname也是没有修改的,这里需要修改 /etc/sysconfig/network 文件, 修改为相应的 hostname。CentOS 默认的主机名为localhost.localdomain
在 /etc/sysconfig/network 文件加上 HOSTNAME=javahuang.com
更改 /etc/hosts 文件,输入命令 vi /etc/hosts,然后将 localhost.localdomain 改为javahuang.com。
验证,把两台虚拟机都启动起来,执行命令 service network restart,如果两台虚拟机都能正常重启网络说明配置成功。另外,ping外网和其他虚拟机测试网络是否正常:
192.168.56.10 ping 192.168.56.9
192.168.56.9 ping 192.168.56.10
在两台虚拟机上 ping 百度或者其他域名也是可以连通的,说明复制虚拟机成功。
要点:
关闭要复制的虚拟机
右键 复制虚拟机
改名
高级: 完全复制 备份当前虚拟机电脑状态
查看新虚拟机的mac地址
选中你的虚机,右键,设置 网络
vi /etc/sysconfig/network-scripts/ifcfg-eth1
修改其中的 mac 地址
修改 hostname, 默认clone的虚拟机的hostname是没有修改的,这里需要修改/etc/sysconfig/network 文件, 修改为相应的 hostname
重启 reboot
ping 外网和其他虚拟机测试网络