先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024b (备注运维)
正文
5个占位符的说明
| 占位符 | 含义 | 范围 |
| — | — | — |
| 第一个 *
| 一小时当中的第几分钟 | 0-59,如果写的是*/1
,代表每一分钟都执行 |
| 第二个*
| 一天当中的第几小时 | 0-23 |
| 第三个*
| 一个月当中的第几天 | 1-31 |
| 第四个*
| 一年当中的第几月 | 1-12 |
| 第五个*
| 一周当中的星期几 | 0-7(0-7都代表星期日) |
特殊符号说明
| 特殊符号 | 含义 |
| — | — |
| * | 代表任何时间。比如第一个*
就代表一小时中每分钟都执行一次的意思 |
| , | 代表不连续时间。比如0 8,12,16 * * *
命令,就代表在每天的8点0分,12点0分,16点0分都执行一次命令 |
| - | 代表连续的时间范围,比如0 5 * * 1-6
命令,代表在周一到周六的凌晨5点0分执行命令 |
| */n | 代表每隔多久执行一次。比如 */10 * * * *
,代表每隔10分钟就执行一遍命令 |
特殊时间执行案例
| 时间 | 含义 |
| — | — |
| 45 22 * * * | 在22点45分执行命令 |
| 0 17 * * 1 | 每周1的17点0分执行命令 |
| 0 5 1,15 * * | 每月1号和15号的凌晨5点0分执行命令 |
| 40 4 * * 1-5 | 每天的凌晨4点,每隔10分钟执行一次命令 |
| */10 4 * * * | 每天的凌晨4点,每隔10分钟执行一次命令 |
| 0 0 1,15 * 1 | 每月1号和15号,每周1的0点0分都会执行命令。
注意:星期几和几号最好不要同时出现,因为他们定义的都是天。非常容易让管理员混乱。 |
- 每隔一分钟,就将当前的日期信息,追加到 /tmp/mydate 文件中
*/1 * * * * date>>/tmp/mydate
- 每隔一分钟,将当前日期和日历都追加到 /home/mycal 文件中
vim /home/my.sh
给 my.sh 写入内容 date>>/home/mycal
和cal>>/home/mycal
然后给 my.sh 增加执行权限:chmod u+x /home/my.sh
crontab -e
写入*/1 * * * * /home/my.sh
- 每天凌晨 2:00 将 mysql 数据库 testdb,备份到文件中。
0 2 * * * mysqldump -u root -proot testdb > /home/db.bak
mysqldump -u root -p密码 数据库 > /home/db.bak
-
conrtab -r
终止任务调度 -
crontab -l
列出当前有哪些任务调度 -
service crond restart
重启任务调度
-
at 命令是一次性定时计划任务,at 的守护进程 atd 会以后台模式运行,检查作业队列来运行
-
默认情况下,atd 守护进程每 60s 检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行此作业
-
at 命令是一次性定时计划任务,执行完一个任务后不再执行此任务了
-
在使用 at 命令时,一定要保证 atd 进程的启动,可以使用相关指令来查看
ps -ef | grep atd [可以监测atd是否在运行]
基本语法:
-
at [选项] [时间]
-
Ctrl + D 结束 at 命令的输入,输出两次
| 选项 | 说明 |
| — | — |
| -m | 当指定的任务被完成后,将给用户发送邮件,即使没有标准输出 |
| -i | atq的别名 |
| -d | atrm的别名 |
| -v | 显示任务将被执行的时间 |
| -c | 打印任务的内容到标准输出 |
| -V | 显示版本信息 |
| -q<队列> | 使用指定的队列 |
| -f<文件> | 从指定文件读入任务而不是从标准输入读入 |
| -t<时间参数> | 以时间参数的形式提交要运行的任务 |
2.4.1、at时间定义
at指定时间的方法:
-
接受在当天的 hh:mm(小时,分钟)式的时间指定。假如该时间已过去,那么久放在第二天执行。例如: 04:00
-
使用 midnight(深夜),noon(中午),teatime(饮茶时间,一般是下午四点)等比较模糊的词语来指定时间
-
采用12小时计时制,即在时间后面加上AM(上午)或PM(下午)来说明是上午还是下午。例如:12pm
-
指定命令执行的具体日期,指定格式为 month day(月 日) 或者 mm/dd/yy(月/日/年) 或者 dd.mm.yy(日.月.年),指定的日期必须跟在指定时间的后面。例如:04::00 2023-11-23
-
使用相对计时法。指定格式为:now+count time-units,now 就是当前时间,time-units 是时间单位,这里能够是 minutes(分钟)、hours(小时)、days(天)、weeks(星期)。count 是时间的数量,几天,几小时。例如: now+5minutes
-
直接使用 today(今天)、tomorrow(明天)来指定完成命令的时间
-
2天后的下午5点执行 /bin/ls/home
at 5pm + 2 days
- atq 命令来查看系统中没有执行的工作任务
atq
- 明天17点钟,输出时间到指定文件内,比如 /root/data100.log
at 5pm tomorrow
- 2分钟后,输出时间到指定文件内,比如 /root/date200.log
at now + 2 minutes
- 删除已经设置的任务,atrm编号
atrm 4
表示将 job 队列,编号为4的job删除。
===========================================================================
-
Linux 来说无论有多个分区,分给哪一目录使用,它归根接底只有一个根目录,一个独立且唯一的文件结构,Linux中每个分区都是用来组成整个文件系统的一部分。
-
Linux 采用了一种叫做"载入"的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得。
-
示意图
如上图,把分区挂载到目录,我们在系统中进入这个目录,就如同进入了这个分区硬盘。
-
Linux 硬盘分 IDE 硬盘和 SCSI 硬盘,目前基本上是 SCSI 硬盘
-
对于IDE硬盘,驱动器标识符为 “hdx~”,其中
hd
表明分区所在设备的类型,这里是指 IDE 硬盘了。x
为盘号(a为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘),~
代表分区,前四个分区用数字1到4表示,它们是主分区或者扩展分区,从5开始就是逻辑分区。例如,hda3表示为第一个IDE硬盘上的第三个主分区或扩展分区,hdb2表示为第二个IDE硬盘上的第二个主分区或扩展分区。 -
对于SCSI硬盘则标识为 “sdx~” ,SCSI 硬盘是用
sd
来表示分区所在设备的类型的,其余则和 IDE 硬盘的表示方法一样。
3.1.1、查看所有设备挂载情况
基本命令:lsblk
或者 lsblk -f
下面我们以增加一块硬盘为例来熟悉下磁盘的相关指令和深入理解磁盘分区、挂载、卸载的概念。
如何增加一块硬盘:
-
虚拟机添加硬盘
-
分区
-
格式化
-
挂载
-
设置可以自动挂载
3.2.1、增加硬盘
在虚拟机菜单中,选择设置,然后设备列表里添加硬盘,然后一路下一步,中间只有选择磁盘大小的地方需要修改。然后重启系统。
这里我们简单演示,所以只增加1个G的硬盘
还要记得重启系统
重启完后输入lsblk
就可以看到我们的新硬盘 sdb 了,下面就可以进行分区了。
3.2.2、分区
分区命令: fdisk /dev/sdb
开始对 /sdb 分区
-
m 显示命令列表
-
p 显示磁盘分区,同
fdisk -l
-
n 新增分区
-
d 删除分区
-
w 写入并退出
说明:开始分区后输入 n,新增分区,然后选择 p,分区类型为主分区。两次回车默认剩余全部空间,最后输入 w 写入分区并退出,若不保存退出输入q。
3.2.3、格式化磁盘
在挂载目录前,我们还需要格式化硬盘,UUID 就是硬盘被格式化后的唯一标识符,我们可以看到新分区没有UUID,也就是还未格式化。
使用命令 mkfs -t ext4 /dev/sdb1
对sdb1分区进行格式化,ext4 是分区类型
这样就可以看到UUID了
3.2.4、挂载
挂载:将一个分区与一个目录联系起来
基本语法:mount 设备名称 挂载目录
mount /dev/sdb1 /newdisk
取消挂载:
基本语法:umount 设备名称/挂载目录
umount /dev/sdb1 或者 umount /newdisk
用命令行挂载,重启后会失效
永久挂载: 通过修改 /etc/fstab
实现挂载,添加完成后,执行 mount -a
即可生效
3.3.1、查询系统整体磁盘使用情况
基本语法:df -h
3.3.2、查询指定目录的磁盘占用情况
基本语法:du -h /目录
查询指定目录的磁盘占用情况,默认为当前目录:
-
-s 指定目录占用大小汇总
-
-h 带计量单位
-
-a 含文件
-
–max-depth=1 子目录深度
-
-c 列出明细的同时,增加汇总值
- 查询 /opt 目录的磁盘占用情况,深度为1
du -hac --max-depth=1 /opt
- 统计
/opt
文件夹下文件的个数
ls -l /opt |grep “^-” | wc -l
- 统计
/opt
文件夹下目录的个数
ls -l /opt |grep “^d”| wc -l
- 统计
/opt
文件夹下文件的个数,包括子文件夹里的
ls -lR /opt |grep “^-”| wc -l
- 统计
/opt
文件夹下目录的个数,包括子文件夹里的
ls -lR /opt |grep “^d” | wc -l
- 以树状显示目录结构 tree 目录,注意,如果没有 tree,则使用
yum install tree
安装
tree /opt [以树状显示opt目录]
========================================================================
例如,我们的Windows电脑安装了Linux虚拟机,Windows电脑在教室,我们在Linux虚拟机上打开www.baidu.com
,是可以访问的,为什么我们的虚拟机可以访问到百度呢?
我们用windows主机ping虚拟机的ip,是可以连接成功的
我们用虚拟机pingwindows主机的ip,
事实上,我们的windows主机还有一个无线网卡,这个网卡是真正可以和互联网互联的
原理图如下:
这样我们来回答一下,为什么虚拟机Linux可以访问互联网:虚拟机通过windows的vmnet8,使用无线网卡代理经过局域网网关,再去找到我们真正的Internet网。
4.2.1、查看虚拟网络编辑器和修改IP地址
- 在VMware 编辑->虚拟网络编辑器
4.2.2、查看网关
指令:ipconfig
指令:ifconfig
基本语法:ping 目的主机
(功能描述:测试当前服务器是否可以连接目的主机)
- 测试当前服务器是否可以连接百度
ping www.baidu.com
4.6.1、第一种方法:自动获取
说明:登录后,通过界面来设置自动获取ip,特点:Linux启动后会自动获取IP,缺点是每次自动获取的ip地址可能不一样
- 打开应用程序->系统工具->设置
- 网络->设置
- 这里可以查看我们的ip是自动还是手动获取的
4.6.2、第二种方法:指定ip
直接修改配置文件来指定IP,并可以连接到外网(工作中使用)
vi /etc/sysconfig/network-scripts/ifcfg-ens33
要求:将ip地址配置成静态的,比如:ip地址为 192.168.200.130
- 首先以 vi 或者 vim 的方式进入
- 将下述代码粘贴
#IP地址
IPADDR=192.168.200.130
#网关
GATEWAY=192.168.200.2
#域名解析器
DNS1=192.168.200.2
ifcfg-ens33 文件说明
| DEVICE=eth0 | 接口名(设置,网卡) |
| — | — |
| HWADDR=00:0C:2x:6x:0x:xx | MAC地址 |
| TYPE=Ethernet | 网络类型(通常是Ethemet) |
| UUID= | 随机id |
| ONBOOT=yes | 系统启动的时候网络接口是否有效(yes/no) |
| BOOTPROTO=static | IP的配置方法[none|static|bootp|dhcp ] (引导时不使用协议|静态分配IP|BOOTP协议|DHCP协议) |
| IPADDR=192.168.200.130 | IP地址 |
| GATEWAY=192.168.200.130 | 网关 |
| DNSL=192.168.200.2 | 域名解析器 |
- 将IP的配置方法修改为静态分配,之后保存并退出。
- 打开编辑->虚拟网络编辑器
- 将虚拟机的子网IP更改
- 网关也更改
- 重启网络服务或者重启系统生效
-
重启网络服务:
service network restart
-
重启系统:
reboot
- 重启完成,我们查看ip
- 查看windows主机的Vmnet8的ip
- 此时就算更改成功了,我们要改Xshell连接虚拟机的ip和网关才能连接入Linux系统
4.7.1、设置主机名
-
为了方便记忆,可以给 linux 系统设置主机名,也可以根据需要修改主机名
-
指令
hostname
(功能描述:查看主机名) -
修改文件
/etc/hostname
指令 -
修改后,重启生效
4.7.2、设置hosts映射
如何通过主机名能够找到(比如ping)某个linux系统,也就是说我们不ping ip,而是ping 系统名称。
- 对于windows系统
在 C:\Windows\System32\drivers\hosts
文件指定即可
- 对于Linux系统
在 /etc/hosts
文件指定
这样我们在ping主机名时就会自动去ping ip 地址。
4.7.3、主机名解析过程分析(Hosts、DNS)
Hosts是一个文本文件,用来记录IP和Hostname(主机名)的映射关系。
DNS,就是Domain Name System 的缩写,翻译过来就是域名系统。是互联网上作为域名和IP地址相互映射的一个分布式数据库。
最全的Linux教程,Linux从入门到精通
======================
-
linux从入门到精通(第2版)
-
Linux系统移植
-
Linux驱动开发入门与实战
-
LINUX 系统移植 第2版
-
Linux开源网络全栈详解 从DPDK到OpenFlow
第一份《Linux从入门到精通》466页
====================
内容简介
====
本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。
本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。
需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注运维)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
-blog.csdnimg.cn/img_convert/9a8cb5f8c0ec69e6499adead0da6e95b.png)
最全的Linux教程,Linux从入门到精通
======================
-
linux从入门到精通(第2版)
-
Linux系统移植
-
Linux驱动开发入门与实战
-
LINUX 系统移植 第2版
-
Linux开源网络全栈详解 从DPDK到OpenFlow
第一份《Linux从入门到精通》466页
====================
内容简介
====
本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。
本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。
需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注运维)
[外链图片转存中…(img-vllcholZ-1713619053482)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!