使用 U 盘安装 centos7
参考:
- https://www.cnblogs.com/w1sh/p/18286154
- 制作启动盘时,要注意几点内容:
- 管理员启动;
- 格式化时,使用 u 盘的默认方式即可: kingsoft u 盘的格式为 fat32;
- 重启系统后按 f12 进入引导页面,选择 uefi 的方式启动;
- 进入启动页面后,选择 install 进行安装
- 遇到 timeout 问题,输入: bldik 找到 u 盘的盘符,然后重启,再在启动页面按 e 进入编辑模式,修改后按 ctrl+x 进行启动;
ip: 192.168.0.150
用户名和密码: root root1003
一些基本信息
[root@home ~]# cat /etc/centos-release
CentOS Linux release 7.9.2009 (Core)
[root@home ~]# uname -a
Linux home.zeanzai 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux网络
[root@home ~]# vi/etc/sysconfig/network-scripts/ifcfg-enp2s0
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static" # 设置为 静态 地址
DEFROUTE="yes"
IPV4_FAILURE_FATAL="yes"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="enp2s0"
UUID="71a995f2-f595-4516-82a4-b0b3bf53cb80"
DEVICE="enp2s0"
ONBOOT="yes"
IPADDR="192.168.0.150"
PREFIX="24"
GATEWAY="192.168.0.1"
IPV6_PRIVACY="no"
DNS1=8.8.8.8 # 添加DNS
DNS2=114.114.114.114 # 添加DNSssh 免密码登陆
- 直接在客户端命令行登陆: ssh root@192.168.0.150
- 把客户端的公钥丢给服务端: ssh-copy-id -i id_ed25519.pub root@192.168.0.150
修改 yum 源及使用 yum 安装软件
[root@home ~]# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_bak
[root@home ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
[root@home ~]# yum clean all[root@home ~]# yum install -y wget
[root@home ~]# yum install -y gcc终端显示为中文
[root@home ~]# locale -a | grep 'zh_CN.utf8'
zh_CN.utf8
[root@home ~]# vi /etc/locale.conf
LANG="zh_CN.utf8"
LC_ALL="zh_CN.utf8"
LC_CTYPE="zh_CN.utf8"
[root@home ~]# source /etc/locale.conf对 ntfs 硬盘进行分区和格式化
[root@home ~]# fdisk -l
WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.
磁盘 /dev/sda:120.0 GB, 120034123776 字节,234441648 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:gpt
Disk identifier: 8CAAF60E-CE8B-4FB1-8362-11358305ED5C
# Start End Size Type Name
1 2048 411647 200M EFI System EFI System Partition
2 411648 2508799 1G Microsoft basic
3 2508800 234440703 110.6G Linux LVM
磁盘 /dev/sdb:128.0 GB, 128035676160 字节,250069680 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x7eadcdcf
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 250068991 125033472 7 HPFS/NTFS/exFAT
磁盘 /dev/mapper/centos_home-root:53.7 GB, 53687091200 字节,104857600 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/mapper/centos_home-swap:12.0 GB, 12004098048 字节,23445504 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/mapper/centos_home-home:53.1 GB, 53053751296 字节,103620608 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
[root@home ~]# blkid
/dev/sda1: SEC_TYPE="msdos" UUID="E901-9F48" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="3e464077-71bb-4591-b33a-76cbe63d2a47"
/dev/sda2: UUID="ee311bbc-3221-4f52-8e06-cee71f3f85fd" TYPE="xfs" PARTUUID="31203d97-969a-406f-90f0-d43a9aee0320"
/dev/sda3: UUID="fIheeY-D4ju-GX92-aRSg-6szE-w9ro-nUFa9R" TYPE="LVM2_member" PARTUUID="30ce5c69-4215-4f30-af60-ab1d808a015f"
/dev/sdb1: LABEL="ZEANZAI" UUID="287C36557C361E4E" TYPE="ntfs"
/dev/mapper/centos_home-root: UUID="12f8ea5d-3566-4be0-bb55-7e990a6a4512" TYPE="xfs"
/dev/mapper/centos_home-swap: UUID="72cd84a4-3e77-4e62-8805-56673ea29c4e" TYPE="swap"
/dev/mapper/centos_home-home: UUID="682c9bc6-d436-43fa-a156-c0c542faadf3" TYPE="xfs"
[root@home ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 12G 0 12G 0% /dev
tmpfs tmpfs 12G 0 12G 0% /dev/shm
tmpfs tmpfs 12G 8.9M 12G 1% /run
tmpfs tmpfs 12G 0 12G 0% /sys/fs/cgroup
/dev/mapper/centos_home-root xfs 50G 1.7G 49G 4% /
/dev/sda2 xfs 1014M 144M 871M 15% /boot
/dev/sda1 vfat 200M 12M 189M 6% /boot/efi
/dev/mapper/centos_home-home xfs 50G 33M 50G 1% /home
tmpfs tmpfs 2.4G 0 2.4G 0% /run/user/0
[root@home ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 111.8G 0 disk
├─sda1 8:1 0 200M 0 part /boot/efi
├─sda2 8:2 0 1G 0 part /boot
└─sda3 8:3 0 110.6G 0 part
├─centos_home-root 253:0 0 50G 0 lvm /
├─centos_home-swap 253:1 0 11.2G 0 lvm [SWAP]
└─centos_home-home 253:2 0 49.4G 0 lvm /home
sdb 8:16 0 119.2G 0 disk
└─sdb1 8:17 0 119.2G 0 part
# 使用fdisk工具进行分区和格式化
[root@home ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):m
命令操作
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
g create a new empty GPT partition table
G create an IRIX (SGI) partition table
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
命令(输入 m 获取帮助):n
[root@home ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):d
已选择分区 1
分区 1 已删除
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-250069679,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-250069679,默认为 250069679):+50G
分区 1 已设置为 Linux 类型,大小设为 50 GiB
命令(输入 m 获取帮助):n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): p
分区号 (2-4,默认 2):
起始 扇区 (104859648-250069679,默认为 104859648):
将使用默认值 104859648
Last 扇区, +扇区 or +size{K,M,G} (104859648-250069679,默认为 250069679):
将使用默认值 250069679
分区 2 已设置为 Linux 类型,大小设为 69.2 GiB
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@home ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 111.8G 0 disk
├─sda1 8:1 0 200M 0 part /boot/efi
├─sda2 8:2 0 1G 0 part /boot
└─sda3 8:3 0 110.6G 0 part
├─centos_home-root 253:0 0 50G 0 lvm /
├─centos_home-swap 253:1 0 11.2G 0 lvm [SWAP]
└─centos_home-home 253:2 0 49.4G 0 lvm /home
sdb 8:16 0 119.2G 0 disk
├─sdb1 8:17 0 50G 0 part
└─sdb2 8:18 0 69.2G 0 part
[root@home ~]# mkfs.ext4 /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
Discarding device blocks: 完成
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
3276800 inodes, 13107200 blocks
655360 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2162163712
400 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
[root@home ~]# mkfs.ext4 /dev/sdb2
mke2fs 1.42.9 (28-Dec-2013)
Discarding device blocks: 完成
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
4538368 inodes, 18151254 blocks
907562 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2166358016
554 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
[root@home ~]# mkdir /mnt/log
[root@home ~]# mkdir /mnt/userfiles
[root@home ~]# vi /etc/fstab
添加以下两行
/dev/sdb1 /mnt/log ext4 defaults 0 0
/dev/sdb2 /mnt/userfiles ext4 defaults 0 0
[root@home ~]# reboot参考这里:https://developer.aliyun.com/article/1633309
[root@home ~]# mount | grep sdb
/dev/sdb1 on /mnt/log type ext4 (rw,relatime,seclabel,data=ordered)
/dev/sdb2 on /mnt/userfiles type ext4 (rw,relatime,seclabel,data=ordered)
[root@home ~]# fdisk -l
磁盘 /dev/sdb:128.0 GB, 128035676160 字节,250069680 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x7eadcdcf
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 104859647 52428800 83 Linux
/dev/sdb2 104859648 250069679 72605016 83 Linux
WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.
磁盘 /dev/sda:120.0 GB, 120034123776 字节,234441648 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:gpt
Disk identifier: 8CAAF60E-CE8B-4FB1-8362-11358305ED5C
# Start End Size Type Name
1 2048 411647 200M EFI System EFI System Partition
2 411648 2508799 1G Microsoft basic
3 2508800 234440703 110.6G Linux LVM
磁盘 /dev/mapper/centos_home-root:53.7 GB, 53687091200 字节,104857600 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/mapper/centos_home-swap:12.0 GB, 12004098048 字节,23445504 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/mapper/centos_home-home:53.1 GB, 53053751296 字节,103620608 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
[root@home ~]# blkid
/dev/mapper/centos_home-root: UUID="12f8ea5d-3566-4be0-bb55-7e990a6a4512" TYPE="xfs"
/dev/sda3: UUID="fIheeY-D4ju-GX92-aRSg-6szE-w9ro-nUFa9R" TYPE="LVM2_member" PARTUUID="30ce5c69-4215-4f30-af60-ab1d808a015f"
/dev/sdb1: UUID="96f4d339-a80c-40fa-a211-8d52364eefbc" TYPE="ext4"
/dev/sdb2: UUID="480ec054-9974-44c5-adb2-748dbfa1dcc5" TYPE="ext4"
/dev/sda1: SEC_TYPE="msdos" UUID="E901-9F48" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="3e464077-71bb-4591-b33a-76cbe63d2a47"
/dev/sda2: UUID="ee311bbc-3221-4f52-8e06-cee71f3f85fd" TYPE="xfs" PARTUUID="31203d97-969a-406f-90f0-d43a9aee0320"
/dev/mapper/centos_home-swap: UUID="72cd84a4-3e77-4e62-8805-56673ea29c4e" TYPE="swap"
/dev/mapper/centos_home-home: UUID="682c9bc6-d436-43fa-a156-c0c542faadf3" TYPE="xfs"
[root@home ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 12G 0 12G 0% /dev
tmpfs tmpfs 12G 0 12G 0% /dev/shm
tmpfs tmpfs 12G 8.9M 12G 1% /run
tmpfs tmpfs 12G 0 12G 0% /sys/fs/cgroup
/dev/mapper/centos_home-root xfs 50G 1.6G 49G 4% /
/dev/sda2 xfs 1014M 144M 871M 15% /boot
/dev/sdb1 ext4 50G 53M 47G 1% /mnt/log
/dev/sdb2 ext4 69G 53M 65G 1% /mnt/userfiles
/dev/sda1 vfat 200M 12M 189M 6% /boot/efi
/dev/mapper/centos_home-home xfs 50G 33M 50G 1% /home
tmpfs tmpfs 2.4G 0 2.4G 0% /run/user/0
[root@home ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 111.8G 0 disk
├─sda1 8:1 0 200M 0 part /boot/efi
├─sda2 8:2 0 1G 0 part /boot
└─sda3 8:3 0 110.6G 0 part
├─centos_home-root 253:0 0 50G 0 lvm /
├─centos_home-swap 253:1 0 11.2G 0 lvm [SWAP]
└─centos_home-home 253:2 0 49.4G 0 lvm /home
sdb 8:16 0 119.2G 0 disk
├─sdb1 8:17 0 50G 0 part /mnt/log
└─sdb2 8:18 0 69.2G 0 part /mnt/userfiles常用命令
//---------- 服务管理
// 服务状态|关闭服务|启动服务|重启服务
systemctl status|stop|start|restart xxx
// 重新加载服务
systemctl daemon-reload
// 是否已经加入自启动
systemctl is-enabled xxx
// 开启自启动服务
systemctl enable nacos.service
//---------- 防火墙管理
// 防火墙
firewall-cmd -h
firewall-cmd --zone=public --list-ports
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
// --------- 端口监听状况
netstat -tunlp
netstat -nultp |grep 8080
ifconfig # 所有网络接口属性
ethtool 网卡名 # 带宽
route -n # 路由表
netstat -antp # 所有已经建立的连接
// --------- 磁盘管理
fdisk -l
lsblk
// 查看系统磁盘空间
df -h
// 查看某一个文件夹下面所有文件的大小
du --max-depth=1 -h /mydata/nexus/data/log/
// --------- 复制到远程服务器
scp -r jdk-8u144-linux-x64.tar.gz root@192.168.1.150:/mnt/doc/package
// 下载
scp -r username@ip:remote_folder local_folder //-r表示递归
// 复制文件夹到服务器上
scp -r local_folder remote_username@remote_ip:remote_folder
// 上传和下载,可以使用 filezilla 客户端
上传
scp -r local_folder username@ip:remote_folder
//或者
scp -r local_folder remote_ip:remote_folder
// --------- 实现 ssh 免密登陆
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.150
ssh root@192.168.1.150
// 启动server
//示例
scp -r root@ip:/apps/local/nginx-1.8.0.tar.gz /Users/gary/Documents/
// --------- docker
docker logs -f -t --tail 100 529a4d9afd8e
// ---------- 文件查找
// 删除当前目录及子文件夹下面所有的target文件夹
find ./ -name -type d "target" -exec rm -rf '{}' +
// 删除当前目录及子文件夹内所有的以.iml结尾的文件
find ./ -name '*.iml' -exec rm -rf '{}' +
// 查看linux系统的最大的线程数
$ ulimit -a | grep user
// 查看Java进程的线程数
$ ps -eLf | grep java | wc -l
// 查看 test.log 中的kafka消息
$ grep "kafka" test.log | head -1 // 最近1条数据
$ grep "kafka" test.log | tail -1 // 最后1条数据
// 统计kafka消息
$ cat adx-feed.log | grep kafka | wc -l
grep "关键词" adx-log.log | wc -l
// 统计每个小时的kafka消息
$ cat adx-baiduUtils.log | grep kafka | awk -F " " '{print $2}' | awk -F ":" '{print $1}' | sort | uniq -c
// 统计15点的视频素材数
$ cat adx-baiduUtils.log | grep "2022-07-27 15:" | grep kafka | awk -F "videoList" '{print $2}' | awk -F "," '{print $1}' | sort | uniq -c | wc -l
// 统计某一整点的每分钟的请求异常个数
$ cat adx-feedJob.log | grep "2022-07-28 15:" | grep "errorMsg" | awk -F "2022-07-28 15:" '{print $2}' | awk -F ":" '{print $1}' | uniq -c
// 统计kafka消息中视频素材数量
$ cat adx-baiduUtils.log | grep kafka | awk -F "videoList" '{print $2}' | awk -F "," '{print $1}' | less | sort | uniq -c | sort -k1 -nr | wc -l
// 统计一个文档中出现过kafka的消息
$ cat xxx.log | grep kafka | tail -100
$ cat xxx.log | grep kafka | head -100
// 截断
awk -F "字符串" '{print $N}' // $N 表示把日志文件截成多个小段后,获取的第n个字段(从1开始数)
// 去重
uniq -c
// 排序,按照大小,从大到小输出
sort -rn
//
grep kafka adx-dYFeedsJobByUseIDFAZHJob.log-2022-08-10 \
adx-dYFeedsJobByUseIDFAGoodJob.log-2022-08-10 \
adx-dYFeedsJobByUseIDFAQueueJob.log-2022-08-10 \
| awk -F "productName" '{print $2}' | awk -F "," '{print $1}' | sort | uniq -c | sort -rn | head -20
// 如果一不小心在一个master分支上写了代码,也执行到了commit上,但是并没有提交到远程分支上;此时可以执行 cherry-pick 操作,在idea中执行
// 以兆为单位查看文件大小
ll -lh log.log
[root@home ~]# uname -a
Linux home.centos 3.10.0-1160.76.1.el7.x86_64 #1 SMP Wed Aug 10 16:21:17 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
// --------- 服务器基本信息
uname -a
hostname
总核数 = 物理CPU个数 X 每颗物理CPU的核数
总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数
# 全部信息
cat /proc/cpuinfo
# 物理CPU个数
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
# 每个物理CPU中core的个数(即核数)
cat /proc/cpuinfo| grep "cpu cores"| uniq
# 逻辑CPU的个数
cat /proc/cpuinfo| grep "processor"| wc -l
getconf LONG_BIT # 计算机位数
env # 环境变量
cat /proc/meminfo # 内存
free -m # 空闲内存
1. 查看总内存情况使用命令`cat /proc/meminfo`即可。
2. 查看内存占用状态使用`free -m`(-m,单位是m,如果是-g,单位是g)。
# 定期清理日志: 1. 把命令日志备份到文件; 2. 清除 history
history > /mnt/d/centos/centos.log
history -c查询日志的做法
- 在业务系统中复现问题,浏览器 f12 打开控制台,然后找到对应的接口
- 拿着接口 url 去找对应的日志文件,然后 vi 打开日志文件
- shift+g 直接到文档最后,在 vi 的命令模式下输入“/{要查找的 url}”进行查询
- 找到对应的线程名称,再次在 vi 的“命令模式”下输入“/{线程名称}”,然后使用 shift+n 向下查找,即可找到堆栈信息
yum 源管理
centos7 yum 源失效
停止维护之后,自带的 yum 源就失效了。解决过程:
- 备份:
- mkdir -p /etc/yum.repos.d/bak
- mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak/
- 修改:
参考这里。
服务管理
# 创建自启service文件
vi /usr/lib/systemd/system/nginx.service
[Unit]
Description=nginx - high performance web server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/softwares/nginx-1.12.2/sbin/nginx -c /softwares/nginx-1.12.2/conf/nginx.conf
ExecReload=/softwares/nginx-1.12.2/sbin/nginx -s reload
ExecStop=/softwares/nginx-1.12.2/sbin/nginx -s stop
[Install]
WantedBy=multi-user.target
# 设置开机自启
systemctl enable nginx.service
# 其它命令
systemctl [start | enable | disable | status | restart | stop] nginx.servicecentos7.5 的防火墙
- 样例
添加
firewall-cmd --zone=public --add-port=80/tcp --permanent (--permanent永久生效,没有此参数重启后失效)
重新载入
firewall-cmd --reload
查看
firewall-cmd --zone=public --list-ports
删除
firewall-cmd --zone= public --remove-port=80/tcp --permanent- firewalld 的基本使用
启动: systemctl start firewalld
查状态:systemctl status firewalld
停止: systemctl disable firewalld
禁用: systemctl stop firewalld
在开机时启用一个服务:systemctl enable firewalld.service
在开机时禁用一个服务:systemctl disable firewalld.service
查看服务是否开机启动:systemctl is-enabled firewalld.service
查看已启动的服务列表:systemctl list-unit-files|grep enabled
查看启动失败的服务列表:systemctl --failed- 配置 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(永久生效)
firewall-cmd --zone=public --add-service=http --permanent
firewall-cmd --reload ## 重新载入,更新防火墙规则
firewall-cmd --zone= public --query-port=80/tcp ##查看
firewall-cmd --zone= public --remove-port=80/tcp --permanent ## 删除
firewall-cmd --list-services
firewall-cmd --get-services
firewall-cmd --add-service=<service>
firewall-cmd --delete-service=<service>
在每次修改端口和服务后/etc/firewalld/zones/public.xml文件就会被修改,所以也可以在文件中之间修改,然后重新加载
使用命令实际也是在修改文件,需要重新加载才能生效。
firewall-cmd --zone=public --query-port=80/tcp
firewall-cmd --zone=public --query-port=8080/tcp
firewall-cmd --zone=public --query-port=3306/tcp
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --zone=public --query-port=3306/tcp
firewall-cmd --zone=public --query-port=8080/tcp
firewall-cmd --reload ## 重新加载后才能生效
firewall-cmd --zone=public --query-port=3306/tcp
firewall-cmd --zone=public --query-port=8080/tcp- 参数解释
–add-service ##添加的服务
–zone ##作用域
–add-port=80/tcp ##添加端口,格式为:端口/通讯协议
–permanent ##永久生效,没有此参数重启后失效- 详细使用
firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.0.4/24" service name="http" accept' //设置某个ip访问某个服务
firewall-cmd --permanent --zone=public --remove-rich-rule='rule family="ipv4" source address="192.168.0.4/24" service name="http" accept' //删除配置
firewall-cmd --permanent --add-rich-rule 'rule family=ipv4 source address=192.168.0.1/2 port port=80 protocol=tcp accept' //设置某个ip访问某个端口
firewall-cmd --permanent --remove-rich-rule 'rule family=ipv4 source address=192.168.0.1/2 port port=80 protocol=tcp accept' //删除配置
firewall-cmd --query-masquerade ## 检查是否允许伪装IP
firewall-cmd --add-masquerade ## 允许防火墙伪装IP
firewall-cmd --remove-masquerade ## 禁止防火墙伪装IP
firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080 ## 将80端口的流量转发至8080
firewall-cmd --add-forward-port=proto=80:proto=tcp:toaddr=192.168.1.0.1 ## 将80端口的流量转发至192.168.0.1
firewall-cmd --add-forward-port=proto=80:proto=tcp:toaddr=192.168.0.1:toport=8080 ## 将80端口的流量转发至192.168.0.1的8080端口selinux
- 查看
getenforce 或 /usr/sbin/sestatus -v- 临时关闭
setenforce 0- 永久关闭
vi /etc/selinux/config
SELINUX=disabled- 查看 Linux 状态
sestatus- selinux 的知识点
https://blog.csdn.net/yanjun821126/article/details/80828908创建用户并赋权
创建新用户
[root@VM_0_6_centos ~]# adduser northmeter
[root@VM_0_6_centos ~]# passwd northmeter
Changing password for user northmeter.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
# 授权
[root@VM_0_6_centos ~]# ls -l /etc/sudoers
-r--r-----. 1 root root 3938 Jun 7 2017 /etc/sudoers
[root@VM_0_6_centos ~]# chmod -v u+w /etc/sudoers
mode of ‘/etc/sudoers’ changed from 0440 (r--r-----) to 0640 (rw-r-----)
[root@VM_0_6_centos ~]# vi /etc/sudoers
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
northmeter ALL=(ALL) ALL
[root@VM_0_6_centos ~]# chmod -v u-w /etc/sudoers
mode of ‘/etc/sudoers’ changed from 0640 (rw-r-----) to 0440 (r--r-----)登录
[root@200 ~]# ssh northmeter@193.112.249.36
northmeter@193.112.249.36's password:
Last login: Tue Jun 5 12:37:45 2018 from 218.17.157.121测试
[root@VM_0_6_centos ~]# su northmeter
[northmeter@VM_0_6_centos root]$ sudo cat /etc/passwd
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
[sudo] password for northmeter:
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:997:User for polkitd:/:/sbin/nologin
libstoragemgmt:x:998:996:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
chrony:x:997:995::/var/lib/chrony:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
syslog:x:996:994::/home/syslog:/bin/false
centos:x:1000:1000:Cloud User:/home/centos:/bin/bash
northmeter:x:1001:1001::/home/northmeter:/bin/bash定时任务
查看服务相关信息
$ systemctl status crond // crond状态
$ systemctl is-enabled crond // 是否开机自启表达式概述
.---------------- minute (0 - 59):代表分钟,取值范围00-59
| .------------- hour (0 - 23):代表小时,取值范围00-23
| | .---------- day of month (1 - 31):代表月份中的日期,取值范围01-31
| | | .------- month (1 - 12) OR jan,feb,mar,apr ...:代表月份,取值范围01-12
| | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
| | | | |
* * * * * user-name command to be executed特殊符号含义
| 特殊符号 | 含义 |
|---|---|
| * | 表示任意时间都,也是”每”的意思,举例:如 00 23 * * *cmd 表示每月每周每日的 23:00 都执行 cmd 任务 |
| - | 表示分隔符,表示一个时间段范围段,如 17-19 点,每小时的 00 分执行任务,00 17-19 * * * cmd 。就是 17,18,19 点整点分别执行的意思 |
| , | 表示分隔时段的意思,30 17,18,19 * * _ /bin.sh /scripts/dingjian.sh 表示每天 17,18 和 19 点的半点时刻执行/scripts/dingjian.sh 脚本。也可以和”-”结合使用,如:30 3-5,17-19 _ * * /scripts/dingjian.sh |
| /n | 即”每隔 n 单位时间”,如:每 10 分钟执行一次任务可以写成 /10 _ * * _ cmd,其中“/10”的范围是 0-59,因此也可以写成 0-59/10 |
命令概述
指定语法
crontab [-u user] file
crontab -u user
(default operation is replace, per 1003.2)
-e (edit user's crontab) 编辑用户命令
-l (list user's crontab) 列表
-r (delete user's crontab) 删除用户任务
-i (prompt before deleting user's crontab) 在删除前确认
-s (selinux context)| 参数 | 含义 | 示例 |
|---|---|---|
| -l | 查看 crontab 文件内容,提示:l 为 list 的缩写 | crontab -l |
| -e | 编辑 crontab 文件内容,提示:e 可为 edit 的缩写 | crontab -e |
| -i | 删除 crontab 文件内容,删除前会提示确认,用得少 | crontab -ri |
| -r | 删除 crontab 文件内容,用得很少 | crontab -r |
| -u | 指定使用的用户执行任务 | crontab -u boy -l |
-I –r 参数在生产中很少用,没什么需求必须要用-e 进去编辑即可
补充: crontab {-l|-e} 实际上就是在操作/var/spool/cron/当前用户这样的文件
相关文件
| 文件 | |
|---|---|
| /etc/cron.deny | 该文件中所列用户不允许使用 crontab 命令 |
| /etc/cron.allow | 该文件中所列用户允许使用 crontab 命令,优先于/etc/cron.deny |
| /var/spool/cron/ | 所有用户 crontab 配置文件默认都存放在此目录,文件名以用户名命名 |
| /var/log/cron | 定时任务的执行日志 |
示例
// 1. 查看当前用户的定时任务
$ crontab -l
// 2. 为当前用户编辑一个定时任务
$ crontab -e
// 3. 清空当前用户的定时任务
$ crontab -r
// 4. 每分钟打印一次自己的英文名字到 /home/test/name.txt 的文件中
方式一:
$ mkdir /home/test // 创建文件目录
$ crontab -e // 输入以下内容
# print my name
* * * * * echo "zeanzai" >> /home/test/name.txt
$ cat /home/test/name.txt // 查看输出
zeanzai
方式二:
$ mkdir /home/test // 创建文件目录
$ vi /var/spool/cron/root // 编辑定时任务配置文件,输入以下内容
# print my name
* * * * * echo "zeanzai" >> /home/test/name.txt
// 5. 查看定时任务执行的日志
$ tail -f /var/log/cron
// 6. 查看定时任务的配置文件
方式一:
$ ll /var/spool/cron/
$ cat root
方式二:
$ crontab -l
// 7. 删除定时任务
$ crontab -ir
yes
// 8. 每天00:01打包昨天的日志文件到tar文件,并删除昨天的日志文件
$ mkdir /home/logs/school-hydroelectricity/tar
$ vi /etc/scripts/tar.sh
cd /home/logs/school-hydroelectricity
tar zcf ./tar/$(date +'%Y-%m-%d' -d '-1 days').tar.gz ./$(date +'%Y-%m-%d' -d '-1 days')
rm -rf ./$(date +'%Y-%m-%d' -d '-1 days')
$ ./etc/scripts/tar.sh
$ crontab -e
# 每天00:01打包昨天的日志文件到tar目录中,并删除昨天的日志文件,要求打包文件以日期命名
* * * * * /bin/sh /etc/scripts/tar.sh生产问题案例及解决过程
面试题:维护的时候,创建文件提示”No space left on device”,请问你这是什么故障:
解答:磁盘空间 block 满了或者 inode 被占满了
故障描述及说明
某年某月甘日某时,某人在工作中设置 crontab 定时任务规则保存时,提示” No space left on device”,此时用 df -h 检查磁盘,发现还有剩余空间,用 df -I 检查则显示/var 目录己占用 100%的 inode 数量,看来是 inode 数量耗尽,导致系统无法在/var 目录下创建文件,因为定时任务的配置在/var/spool/cron 下,ext3 文件系统中,每个文件需要占一个 inode。
故障原因分析
当系统中 crond 定时任务执行程序有输出内容时,输出内容会以邮件形式发给 crond 的用户(默认是 root),而 sendmail 等 mail 服务没有启动时,这些输出内容以为支在邮件队列临时目录,产生这些碎文件,导致消耗 inode 数量,一旦 inode 数量耗尽,就会导致系统无法写入文件,而报上述错误:No space left on device.
亡羊补牢解决方法
尽量将 crontab 里面的命令或脚本中的命令结尾加上>/dev/null 2>&1,或在做定时执行脚本时,把屏幕输出定向到指定文件里
当然也可以开启邮件服务,不过最好不做,因为邮件服务会带来安全问题
优化系统,加定时清理任务,如 find /var/spool/clientmqueue/ -type f -mtime +30|xargs rm -f
调试 crontab 定时任务
- 增加执行频率调试任务
- 调整系统时间调试任务
- 通过日志输出调试定时任务
- 通过定时任务日志调试定时任务
参考
- http://blog.51cto.com/mrxiong2017/2084803
- https://blog.csdn.net/andrewgb/article/details/47374963
- https://www.cnblogs.com/javahr/p/8318728.html
挂载 NTFS 硬盘
由于家里的电脑原来装的是 windows 系统,并且我自己扩展了两块硬盘,原来 Windows 系统时,两块硬盘可以正常读写,但是在物理机上面安装上 centos7.5 以后,由于只是格式化 c 盘,把 centos7.5 系统安装到了 c 盘,所以之前自己扩展的两块硬盘就无法正常读写了,此时,需要在 centos 系统上读写两块硬盘内容,需要怎么处理呢?下面给出解决方案。
安装依赖包
yum install -y fuse ntfs-3g挂载硬盘
[root@home data]# mkdir -p /mnt/data/d /mnt/data/e
[root@home data]# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1 vfat B476-53D1 /boot/efi
├─sda2 xfs cd9c42b2-dafc-40dc-a780-28e8b5ed453a /boot
└─sda3 LVM2_member pue3cy-Bdmo-txbs-f7vS-3Oef-78zY-ACq296
├─centos_home-root xfs a1c1e8bc-3a27-47b6-a2aa-f329e4b77e86 /
├─centos_home-swap swap 4ff247c5-07b8-4143-93bc-1496ac3a7162 [SWAP]
└─centos_home-home xfs 2d5c8133-4174-4689-906a-62c316aa6839 /home
sdb
└─sdb1 ntfs Software 90769AF9769ADEF2
sdc
├─sdc1
└─sdc2 ntfs Zeanzai D4947D40947D25E0
[root@home data]# mount /dev/sdb1 /mnt/data/d
[root@home data]# mount /dev/sdc2 /mnt/data/e自动挂载
如果需要永久挂载,先查到该盘的 type 值:
[root@home ~]# blkid
/dev/mapper/centos_home-root: UUID="a1c1e8bc-3a27-47b6-a2aa-f329e4b77e86" TYPE="xfs"
/dev/sda3: UUID="pue3cy-Bdmo-txbs-f7vS-3Oef-78zY-ACq296" TYPE="LVM2_member" PARTUUID="3f965157-bb9c-49b5-9aeb-20726f024e6f"
/dev/sdb1: LABEL="Software" UUID="90769AF9769ADEF2" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="8ba8c6a7-4a88-47d2-b94e-97d2d97a144e"
/dev/sdc1: PARTLABEL="Microsoft reserved partition" PARTUUID="6207f65b-8b11-46bd-bd4a-d14f2d5a0c6e"
/dev/sdc2: LABEL="Zeanzai" UUID="D4947D40947D25E0" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="3220d24a-a508-4dfb-af5e-ae2a749c9d9f"
/dev/sda1: SEC_TYPE="msdos" UUID="B476-53D1" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="82eac0f4-625e-4b70-80c7-221bee59c290"
/dev/sda2: UUID="cd9c42b2-dafc-40dc-a780-28e8b5ed453a" TYPE="xfs" PARTUUID="1075528c-e57e-4734-a6c9-74a798184fcb"
/dev/mapper/centos_home-swap: UUID="4ff247c5-07b8-4143-93bc-1496ac3a7162" TYPE="swap"
/dev/mapper/centos_home-home: UUID="2d5c8133-4174-4689-906a-62c316aa6839" TYPE="xfs"在最下面添加两行
#
# /etc/fstab
# Created by anaconda on Sun Jun 27 13:23:19 2021
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos_home-root / xfs defaults 0 0
UUID=cd9c42b2-dafc-40dc-a780-28e8b5ed453a /boot xfs defaults 0 0
UUID=B476-53D1 /boot/efi vfat umask=0077,shortname=winnt 0 0
/dev/mapper/centos_home-home /home xfs defaults 0 0
/dev/mapper/centos_home-swap swap swap defaults 0 0
/dev/sdb1 /mnt/data/d ntfs defaults 0 0
/dev/sdc2 /mnt/data/e ntfs defaults 0 0注意是 ntfs,不是其他。
如果遇到无法正常启动时,可以参考 https://blog.csdn.net/weixin_34401479/article/details/94316392
其它命令
# 查看所有磁盘的分区情况
fdisk -l
# 卸载
umount /dev/sdd1
# 查看已挂载磁盘使用情况
df -h挂载 exFat 磁盘驱动器
yum install epel-release
rpm -v --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
yum install exfat-utils fuse-exfat
[root@home data]# mount -t exfat /dev/sdd1 /mnt/data/f磁盘扩展
场景描述
早上起来使用 jenkins 自动化部署时,发现日志中提示磁盘已满的问题,在查询解决此问题的过程中,有很多博客都建议修改构件保存天数。笔者在自动化部署的设置过程中,本身设置的保存天数就很小。然后查看一下磁盘的使用情况,发现 root 分区已使用 100%。只能使用修改分区的方式进行修改了。 在此问题出现的头一天晚上,重启了一下服务器,然后 rabbitmq 就再也启动不起来了,查看日志文件,网上也说是因为磁盘已满的问题。 早上过来发现,showdoc 也挂掉了,但是挂掉一段时间之后自动又好了。
解决过程
查看磁盘使用情况
[root@dev ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos_dev-root 118G 118G 20K 100% /
devtmpfs 32G 0 32G 0% /dev
tmpfs 32G 0 32G 0% /dev/shm
tmpfs 32G 9.8M 32G 1% /run
tmpfs 32G 0 32G 0% /sys/fs/cgroup
/dev/sda1 1014M 186M 829M 19% /boot
/dev/mapper/centos_dev-home 7.2T 26G 7.2T 1% /home
tmpfs 6.3G 0 6.3G 0% /run/user/0备份 home
[root@dev ~]# cp -r /home/ /dev/homebak卸载 home
[root@dev ~]# umount /home删除 home 所在的 lv
[root@dev ~]# lvremove -y /dev/mapper/centos_dev-home
Logical volume "home" successfully removed显示 lvm 卷组信息
[root@dev ~]# vgdisplay
--- Volume group ---
VG Name centos_dev
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 5
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 2
Act PV 2
VG Size 7.27 TiB
PE Size 4.00 MiB
Total PE 1907041
Alloc PE / Size 38240 / <149.38 GiB
Free PE / Size 1868801 / <7.13 TiB
VG UUID js7DO7-igaq-Si7p-lAef-PkXA-FS3W-5hnfSu扩展 root 所在的 lv
[root@dev ~]# lvextend -L +3T /dev/mapper/centos_dev-root
Size of logical volume centos_dev/root changed from 118.00 GiB (30208 extents) to <3.12 TiB (816640 extents).
Logical volume centos_dev/root successfully resized.扩展 root 文件系统
[root@dev ~]# xfs_growfs /dev/mapper/centos_dev-root
meta-data=/dev/mapper/centos_dev-root isize=512 agcount=4, agsize=7733248 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=30932992, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=15104, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 30932992 to 836239360重新创建 home 的 lv
[root@dev ~]# lvcreate -L 4T -n home centos_dev
Logical volume "home" created.创建 home 文件系统
[root@dev centos_dev]# mkfs.xfs /dev/centos_dev/home
meta-data=/dev/centos_dev/home isize=512 agcount=4, agsize=268435455 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=1073741820, imaxpct=5
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=521728, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0挂载 home 并恢复备份
[root@dev centos_dev]# mount /dev/centos_dev/home /home
[root@dev centos_dev]# cp -r /dev/homebak/ /home/
[root@dev ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos_dev-root 3.2T 118G 3.1T 4% /
devtmpfs 32G 26G 6.3G 81% /dev
tmpfs 32G 0 32G 0% /dev/shm
tmpfs 32G 9.8M 32G 1% /run
tmpfs 32G 0 32G 0% /sys/fs/cgroup
/dev/sda1 1014M 186M 829M 19% /boot
tmpfs 6.3G 0 6.3G 0% /run/user/0
/dev/mapper/centos_dev-home 4.0T 29G 4.0T 1% /home参考链接
安装 virtualbox 和 vagrant 用来安装虚拟机
安装 virtualbox
- 注意: virtualbox 对 centos7.9 的支持已经很弱了。
- 打开官网: https://www.virtualbox.org 选择系统版本: linux distributions;然后拉到最下面,找到 oracle linux/RHEL 对应的连接;
- 点击并下载到 /etc/yum.repos.d 文件夹内;然后修改: repo_gpgcheck=0;
- yum update
- yum install -y VirtualBox-7.0.x86_64
- 安装完成之后使用 systemctl status vboxdrv 查看是否能够运行
问题及处理
- 安装过程中可能会出现 yum update 失败的情况,这个时候需要对下载下来的 virtualbox.repo 文件进行修改,原因是: repo_gpgcheck=1 可能导致元数据签名校验失败。将其设为 0,只保留 gpgcheck=1。
- virtalbox 的服务名称为: vboxdrv ;
- 安装后可能启动不起来,查看启动过程日志发现: kernel 出现问题;解决过程:
- 查看 headers 版本 : rpm -qa kernel-headers ,如果发现没有安装,使用 yum install -y kernel-headers 进行安装;
- 查看 devel 版本: rpm -qa kernel-devel , 没有安装就使用 yum install -y kernel-devel 进行安装;
- 安装之后,可能需要重启;
- 之后再次 systemctl restart vboxdrv 重启,done!
- 由于是在 centos 上安装的,因此没有操作界面,但是有些时候需要修改一些配置,此时只能使用命令:
- 修改 vm 文件存放位置: VBoxManage setproperty machinefolder /mnt/userfiles/vms/
vagrant
- 官网 https://developer.hashicorp.com/vagrant/install 给的安装方式已经不支持 centos7.9 了,因此需要下载 vagrant 的安装包;
- 安装包地址: https://releases.hashicorp.com/vagrant/2.4.1/ ,之后直接安装: yum install ./vagrant_2.4.1_x86_64.rpm
简单实用
- vagrant box add centos/7 : 添加镜像;
- vagrant init centos/7 : 直接创建虚拟机;
- 其它参考: vagrant 文档;
- 桥接的设置方式可以直接设置: config.vm.network "public_network", ip: "192.168.0.160"