1、破解密码:
1、首先重启虚拟机,启动的时候马上按e键进入安全模式
2、在有Linux那行的最后面加上rd.break
3、ctrl+x将文件
4、以读写的方式重新挂载:mount -o remount,rw /sysroot
5、进入路径:chroot /sysroot
6、改写密码:passwd
6、打安全标签:touch /.autorelabel
7、退出exit
8、重启
然后输入passwd,把密码输入进去,密码是不出现的。
最后reboot重启。
2、创建一个500M的分区,格式化为XFS,挂载到/common,要求下次开机生效
fdisk /dev/sdb
输入n新创建分区
输入p创建主分区
创建一个500M分区
输入w保存分区
最后对分区进行内核写入:partprobe /dev/sdb
3、将/usr/local打包到/root/backup_local.tar.bz2
tar -Jcvf /root/backup_local.tar.bz2 /usr/local
4、让natasha用户在每个月21号的下午3点到5点之间每隔10分钟执行一次I AM RHCE
进入:su - natasha
输入crontab -e
0-50 15 21 * * /bin/echo "I AM RHCE" >> /home/natasha/cron.log 2>&1
5、创建admin的组
groupadd admin
名为natasha的用户,其属于admin的组,该组是这个用户的附属组
useradd -G admin natasha
名为harry的用户,属于admin组,该组是这个用户的从属组
useradd -g admin harry
名为sarah的用户,其没有可以交互的shell,不属于admin组
useradd -s /sbin/nologin sarah
参数G和g的区别:但是我还是有点分不清从属组合附属组。
[root@localhost html]# useradd -g admin natasha
[root@localhost html]# id natasha
uid=1001(natasha) gid=1002(admin) groups=1002(admin)
[root@localhost html]# useradd -G admin harry
[root@localhost html]# id harry
uid=1002(harry) gid=1003(harry) groups=1003(harry),1002(admin)
6、查找/目录下user1用户的所有文件,并拷贝到/root/findfile/目录中
cd /home/user1
cp -r /home/user1/ /root/findfile/
7、给你的系统swap增大500M空间
1、创建文件
sudo dd if=/dev/zero of=/swapfile bs=1M count=500
2、设置权限
chmod 600 /swapfile
3、格式化swap文件
mkswap /swapfile
4、启用swap文件
swapon /swapfile
5、设置开机自动挂载swap
echo '/swapfile none swap defaults 0 0' | sudo tee -a /etc/fstab
6、验证swap空间
free -m 或者 swapon --show
8、创建一个PE大小为8M的一个20个PE的tangkai,卷组名为vg0,格式化为ext3,挂载 到/storage目录下,要求开机生效
1、首先得有一个干净的硬盘分区。
2、然后开始创建PV——VG——LV
pvcreate /dev/sdb2
vgcreate -s 8M vg0 /dev/sdb2 #参数s是设置PE大小的。
lvcreate -l 20 -n tangkai vg0 #参数l是PE的值乘以l后面的数
3、格式化逻辑卷:
mkfs.ext3 /dev/vg0/tangkai
4、创建挂载点:
mkdir /storage
5、挂载逻辑卷
mount /dev/vg0/tangkai /storage
6、验证挂载
df -h /storage
7、查看卷组详情状态
vgdisplay
--------------------------------
还可以永久挂载(开机自动挂载)
echo '/dev/vg0/tangkai /storage ext3 defaults 0 2' | sudo tee -a /etc/fstab
更新挂载:
mount -a
9、编写一个shell脚本,用于搜集其执行主机的信息
vim test.sh
#!/bin/bash
# 获取日期和时间信息
current_date=$(date '+%Y年 %m月 %d日 %H:%M:%S %p %A %Z')
# 打印日期和时间
echo "$current_date"
# 获取并打印当前用户
echo "当前的用户为 $(whoami)"
# 获取并打印当前用户的宿主目录
home_dir=$(eval echo ~$(whoami))
echo "当前用户的宿主目录为 $home_dir"
# 获取并打印当前用户的标识(UID)
user_uid=$(id -u $(whoami))
echo "用户的标识为 $user_uid"
# 获取并打印主机名称
host_name=$(hostname)
echo "主机名称为 $host_name"
# 获取并打印网卡的IP地址
# 假设是第一个网卡,这里可能需要根据实际情况调整
ip_address=$(ip addr show | grep 'inet ' | grep -v '127.0.0.1' | awk '{print $2}' | cut -d/ -f1 | head -1)
echo "网卡的IP地址为 $ip_address"
10、编写一个脚本实现显示时间和日期, 列出所有登录系统的用户,并且给出系统的当前时间以及已经运行多长时间,最后脚本还会 将这些信息写入一个日志文件。
#!/bin/bash
# 定义日志文件的路径
LOGFILE="/var/log/system_info.log"
# 函数:记录当前时间和日期
log_date_and_time() {
echo "====================" >> "$LOGFILE"
date '+%Y-%m-%d %H:%M:%S' >> "$LOGFILE"
}
# 函数:列出所有登录用户
list_logged_users() {
echo "Logged in users:" >> "$LOGFILE"
who >> "$LOGFILE"
}
# 函数:显示系统运行时间
uptime_info() {
echo "System uptime:" >> "$LOGFILE"
uptime >> "$LOGFILE"
}
# 记录脚本执行开始的时间
log_date_and_time
# 列出所有登录用户
list_logged_users
# 显示系统的当前时间和已经运行多长时间
uptime_info
# 记录脚本执行结束的时间
log_date_and_time
# 显示脚本执行结果
echo "The system information has been logged to $LOGFILE"
11、创建databas 数据库,在改库中创建stundent表,表结构 id 主键 姓名 唯一约束 年龄 班级 。然后添加数据
#在创建数据库、数据表时,在创建的是时候就把字符集设置成utf-8,不然后续输入中文就会报错。注意:如果您正在使用的是MySQL 8.0或更高版本,utf8mb4已经是默认的字符集。如果不是就用下面的方式解决。
解决办法:一种是在/etc/my.cnf中添加,这样他以后创建的数据库都是utf8mb4.
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
#设置客户端默认字符集
[client]
default-character-set=utf8mb4
#设置默认连接字符集
init_connect='SET NAMES utf8mb4'
重启服务:systemctl restart mysql
最后验证:
SHOW VARIABLES LIKE 'character_set_server';
SHOW VARIABLES LIKE 'collation_server';
第二种就是你修改成你需要的字符集格式:
ALTER DATABASE 数据库名 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
ALTER TABLE 表名 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
修改列名(字段)的字符集
ALTER TABLE 表名 CHANGE 列名 列名 VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-------------------------------------------------------------
CREATE TABLE IF NOT EXISTS student (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) UNIQUE,
age INT,
class VARCHAR(255)
);
insert into student (name,age,class) values ('yk',20,'大四一班') ,('chg',22,'大四一班') ;
12、修改姓名字段的字段名为ename
ALTER TABLE student CHANGE name ename VARCHAR(255); #改名后的ename后面也要加上数据类型和长度不然会报错。
13、创建一个网页,网页内容是hello,world默认主目录是/html,用IP/test和IP两种方式访问,应该怎么做。
审题有点问题,他是要我用两次配置文件进行访问,还是说全部放到一个配置文件中去访问。我下面这个就是创建了两个html,然后他们分开访问。
server {
listen 80;
server_name localhost;
# 根目录设置(相当于全局变量)
root /usr/share/nginx/html;
index index.html index.htm;
# 根URL 配置
location / {
# 尝试提供请求的文件或目录,如果不存在则提供 index 文件
try_files $uri $uri/ /index.html;
}
# /test 路径配置
location /test {
# 尝试提供 test.html 文件,如果不存在则返回 404 错误
try_files /test.html =404;
}
# 错误页面配置
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
14、ABC三台服务器,A和B为web服务器,C为代理服务器,要求用加权轮询的方式做负载均衡,A的权重为2,B的权重是4
A做代理服务器:
upstream myapp{
server 10.0.0.19:80 weight=2;
server 10.0.0.36:80 weight=4;
}
server {
listen 80;
server_name localhost;
#access_log /var/log/nginx/host.access.log main;
location / {
proxy_pass http://myapp;
root /usr/share/nginx/html;
index index.html index.htm;
}
}
B和c做正常服务器
server {
listen 80;
server_name 10.0.0.19;
#access_log /var/log/nginx/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
15、做nginx动静分离的实验
思路:将静态文件放在代理服务器中,动态资源放在被代理的服务器中。
静态资源配置:
server {
listen 80;
server_name 10.0.0.17;
location ~ \.(html|jpg|png|js|css|gif|bmp|jpeg) {
root /usr/local/nginx/html;
index index.html index.htm;
}
动态资源配置:
server {
listen 80;
server_name localhost;
location ~ \.php$ {
root /usr/share/nginx/html; # 指定网站目录
fastcgi_pass 127.0.0.1:9000; # 指定访问地址
fastcgi_index index.php; # 指定默认文件
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; # 站点根目录,取决于 root 配置项
include fastcgi_params; # 包含 nginx 常量定义
}
}
代理服务器的配置:省略。
1、在10.0.0.18IP地址上加上/index.html既可以访问静态页面,打开access.log日志,能够查看到相关静态信息日志
1、在10.0.0.18IP地址上加上/index.php既可以访问静态页面,打开access.log日志,能够查看到相关动态信息日志
16、访问IP/asd的时候跳转到baidu.com (rewrite重定向)
server {
listen 80;
server_name 10.0.0.19;
#access_log /var/log/nginx/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
rewrite .* http://jd.com permanent; #
}
}
17、用户访问我的网站的时候只允许他每秒访问一次 (访问控制及流量控制)
limit_req_zone $binary_remote_addr zone=mylimit:10m rate=1r/s;
server {
listen 80;
server_name 10.0.0.19;
location / {
limit_req zone=mylimit;
root /usr/share/nginx/html;
index index.html index.htm;
# rewrite .* http://jd.com permanent;
}
}
主要加了两条命令limit_req_zone和limit_req zone=mylimit;
18、拷贝/etc/fstab到/tmp/fstab
cp /etc/fstab /tmp/fstab
/tmp/fstab的权限为所有者所有组为root任何人不可以执行这个文件
[root@localhost html]# ll /tmp/fstab
-rw-r--r-- 1 root root 500 Aug 16 16:52 /tmp/fstab
natasha对该文件有读写权限
setfacl -m u:natasha:rwx /tmp/fstab
harry对该文件没有读写权限
setfacl -m u:harry:- /tmp/fstab #-代表没有权限。
其他用户对该文件有读取权限,默认其他用户就是只读权限。
[root@localhost html]# getfacl /tmp/fstab
getfacl: Removing leading '/' from absolute path names
# file: tmp/fstab
# owner: root
# group: root
user::rw-
user:natasha:rw-
user:harry:---
group::r--
mask::rw-
other::r--
stab
natasha对该文件有读写权限
setfacl -m u:natasha:rwx /tmp/fstab
harry对该文件没有读写权限
setfacl -m u:harry:- /tmp/fstab #-代表没有权限。
其他用户对该文件有读取权限,默认其他用户就是只读权限。
[root@localhost html]# getfacl /tmp/fstab
getfacl: Removing leading ‘/’ from absolute path names
#file: tmp/fstab
#owner: root
group: root
user::rw-
user:natasha:rw-
user:harry:—
group::r–
mask::rw-
other::r–
标签:index,面试题,log,fstab,基础,server,nginx,html,root
From: https://blog.csdn.net/yd3202/article/details/141265873