1.进入容器
docker exec -it -u root 24795ac94ae7 /bin/sh
2.查看容器时间
date -R
3.在容器中创建文件
mkdir -p /usr/share/zoneinfo/Asia
4. 回到宿主机 复制宿主机的文件到容器 mynginx为文件名
docker cp /usr/share/zoneinfo/Asia/Shanghai mynginx:/usr/share/zoneinfo/Asia
5.进入容器 复制文件
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
备注:not writing through dangling symlink '/etc/localtime’错误 进到容器的etc文件夹 删除localtime文件 再复制就可以了
var/lib/docker/containers 可以删除日志文件 清理磁盘
docker update --restart=always 容器ID(或者容器名)
docker update --restart=no 容器ID(或者容器名) #关闭容器自启动
容器id+: 后边,没有空格
复制文件夹
docker cp d65625c68f6b:/home/ /lzp/dockerfile/
复制文件
docker cp d65625c68f6b:/home/a.txt /lzp/dockerfile/b.txt
apt-get install -y vim
下载不成功的话指定源
mv /etc/apt/sources.list /etc/apt/sources.list.bak
echo "deb http://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free" >/etc/apt/sources.list
echo "deb http://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-free" >>/etc/apt/sources.list
echo "deb http://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main contrib non-free" >>/etc/apt/sources.list
echo "deb http://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main contrib non-free" >>/etc/apt/sources.list
然后执行 apt-get update
然后再 apt-get install -y vim 下载就可以了
修改时间慢八个小时:etc/profile文件加入 export TZ=‘CST-8’ 重启服务器
timedatectl
设置系统时区为上海
timedatectl set-timezone Asia/Shanghai
强制将时区写入bios
clock -w
du -sh *
查看当前文件下的每个文件夹的大小
du -sh /lzp/*
查看指定文件夹下的磁盘占用
df -h
lsblk
fdisk /dev/sda
n 新建分区
d 删除分区
p 查看当前分区
w 保存并退出
操作完需要重启虚拟机
1.virtualbox修改
从40G调到80G
需要关闭虚拟机
2.改完启动虚拟机
运行lsblk
说明磁盘有80G 但是分区只占用了40G
3.安装growpart扩容工具
yum -y install cloud-utils-growpart
查看文件系统类型: df -TH
当文件系统为xfs类型时:
4.growpart [磁盘名称] [分区编号]
growpart /dev/sda 1 #注意有空格 命令表示扩容磁盘的第1个分区(/dev/sda1)
5.xfs_growfs [分区名称]
xfs_growfs /dev/sda1
当文件系统为ext*类型时:
resize2fs [分区名称]
例如,对/dev/vda1进行扩容:
resize2fs /dev/vda1
这时再使用 df -h查看 空间会扩大
netstat -nultp
提示命令不存在的话:yum install -y net-tools
telnet +端口
提示命令不存在
yum install telnet
退出:quit
curl
1.cd /etc/sysconfig/network-scripts
2.vi ifcfg-eth1
3.systemctl restart network
cat 查看
touch 新建
rm -rf * 删除当前文件夹下的所有文件
删除某一个文件夹
rm -rf ./文件夹名称 // ./代表当前路径 最好加 如果不加则表示根目录 /a就代表根路径下a文件夹
删除文件夹所有内容 文件夹保留
rm -rf ./* 加一个*号
移动文件夹
mv ./test01 ./test02 //test02存在的话 会把test01文件夹整体放到test02下
test02不存在的话 会新建test02文件夹 把test01文件夹中的内容放到test02下,删除test01文件夹
移动文件
mv a.txt /home/b 把当前文件夹的a.txt移动到b文件夹
复制文件夹
cp -r ./a ./b 如果b文件夹存在 则把a放到b 如果b文件夹不存在 则新建b文件夹 把a文件夹内容放到b内
复制文件
cp a.txt b.log 复制一份a.txt变成b.log
tar -zxvf 压缩文件名.tar.gz //解压
tar -zxvf +压缩文件名.tar.gz +被压缩文件名 /// 压缩
find / -name *.rdb
find /lzp -name *.txt 在/lzp目录下找
head -n 5 文件名 //查看前5行
tail -n 5 文件名 //查看结尾5行
tail -f 文件名 //(功能描述:实时追踪该文档的所有更新 查日志)
echo '' >文件名 清空日志文件
ln -s xiyou/dssz/houge.txt ./houzi //连接文件
cd -P dssz/ //进入实际路径
pwd -P //显示实际物理路径 而不是链接路径
1.执行sh脚本报错: invalid option set: -
vim 编辑时 :set ff 可以看到该文件的格式为 fileformat=dos
修改为 :set ff=unix
2.中文乱码
在windows中记事本编辑文件后另存为格式为UTF-8,然后重新打开文件再复制内容到linux即可。
3.检测脚本格式 不执行
如果当前是root用户 cd ~ 代表进入到/root下
/ 表示根目录
./ 表示当前目录
../ 上一级目录
【1】使用sh命令
(1)-n 只读取shell脚本,检测语法错误,但不实际执行
(2)-x 进入跟踪方式,显示所执行的每一条命令
(3)-c "string" 从strings中读取命令
(4)-v 读取并打印出整个shell脚本,检测语法错误,但不实际执行
#检测语法,但不实际执行
sh -nv 脚本文件
#边执行,边显示结果,遇到错误就停止脚本
sh -xv 脚本文件
kill -9 pid
方式1:ps -ef | grep redis ppid也就是父进程id
方式2:jps -l #查看java进程
结束时直接 kill-9 23570即可
rpm -qal |grep mysql
rpm -qa |grep mysql
nohup java -jar -Xmx128m -Xms128m xxx.jar --server.port=9090 &
使用ctrl+c退出 或者关闭窗口都不会中断程序
rpm -qa
6.6.查看cpu占用
top 然后大写P
cpu
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head
内存
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head
查看java程序内存占用排行
top -o %MEM -b -n 1 | grep java | awk '{print "PID: "$1" \t MEM: "$6" \t %CPU: "$9"% \t %MEM: "$10"%"}'
top -o %MEM -b -n 1 | grep java | awk '{print "PID: "$1" \t 虚拟内存: "$5" \t 物理内存: "$6" \t 共享内存: "$7" \t CPU使用率: "$9"% \t 内存使用率: "$10"%"}'
uname -m
x86_64 又称为amd64 还有一种是arm64
ssh -p 2222 root@192.168.0.100
方式1
passwd root
然后输入密码
方式2
echo root:sbhibsdjkh123\$ | chpasswd
root是用户名
sbhibsdjkh123\$ 是密码 $需要使用反斜杠
cat /proc/cpuinfo | grep "model name"
nvidia-smi
根据关键词查询
包含my的
不包含my的
docker ps |grep -v my
只打印第一个参数
vim /etc/hosts
192.168.56.10 www.aaa.com
wq保存
然后执行systemctl restart network
ctrl+l
ab -n 10 -c 10 请求地址
命令不存在的话 yum -y install httpd
参数说明
-A:指定连接服务器的基本的认证凭据;
-c:指定一次向服务器发出请求数;并发数
-C:添加cookie;
-g:将测试结果输出为“gnuolot”文件;
-h:显示帮助信息;
-H:为请求追加一个额外的头;
-i:使用“head”请求方式;
-k:激活HTTP中的“keepAlive”特性;
-n:指定测试会话使用的请求数;请求总数
-p:指定包含数据的文件;
-q:不显示进度百分比;
-T:使用POST数据时,设置内容类型头;
-v:设置详细模式等级;
-w:以HTML表格方式打印结果;
-x:以表格方式输出时,设置表格的属性;
-X:使用指定的代理服务器发送请求;
-y:以表格方式输出时,设置表格属性。
#ab命令版本
[root@stache34 ~]# ab -V
This is ApacheBench, Version 2.3 <$Revision: 1430300 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
[root@stache34 ~]# ab -h
Usage: ab [options] [http[s]://]hostname[:port]/path
Options are:
-n requests #在测试会话中所执行的请求总个数,默认仅执行一个请求
-c concurrency #每次请求的并发数,相当于同时模拟多少个人访问url,默认是一次一个
-t timelimit #测试所进行的最大秒数。其内部隐含值是-n 50000
#它可以使对服务器的测试限制在一个固定的总时间以内
-s timeout #等待每个响应的最大值,默认为30秒
-b windowsize #TCP 发送/接收缓冲区的大小,以字节为单位
-B address #进行传出连接时要绑定到的地址
-p postfile #包含要 POST 的数据的文件,记得还要设置 -T 参数
-u putfile #包含要 PUT 的数据的文件,记得还要设置-T 参数
-T content-type #POST/PUT 数据所使用的Content-type头信息
#例如:application/x-www-form-urlencoded 默认值:text/plain
-v verbosity #设置显示信息的详细程度 -4 或更大值会显示头信息
#3或更大值可以显示响应代码(404, 200等),2或更大值可以显示警告和其它信息
-w #以HTML表的格式输出结果,默认时,它是白色背景的两列宽度的一张表
-i #执行HEAD请求,而不是GET
-x attributes #以HTML表格格式输出结果时,给 table 标签设置的属性值
#如 -x 'sytle="width=500px"' 输出的html中table标签会加上该属性<table sytle="width=500px">
-y attributes #以HTML表格格式输出结果时,给 tr 标签设置的属性值
-z attributes #以HTML表格格式输出结果时,给 td 标签设置的属性值
-C attribute #对请求附加一个Cookie:行,形式为 name=value 的一个参数对,此参数可以重复
-H attribute #对请求附加额外的头信息,此参数的典型形式是一个有效的头信息行
#其中包含了以冒号分隔的字段和值的对 (如:"Accept-Encoding: zip/zop;8bit")
-A attribute #对服务器提供BASIC认证信任,用户名和密码由一个:隔开,并以base64编码形式发送
#无论服务器是否需要(即:是否发送了401认证需求代码)此字符串都会被发送
-P attribute #对一个中转代理提供BASIC认证信任,用户名和密码由一个:隔开,并以base64编码形式发送
#无论服务器是否需要(即:是否发送了401认证需求代码)此字符串都会被发送
-X proxy:port #对请求使用代理服务器
-V #显示版本号并退出
-k #启用 HTTP KeepAlive 功能,即在一个 HTTP 会话中执行多个请求,默认不启用 KeepAlive 功能
-d #不显示“XX [ms] 表内提供的百分比”(遗留支持)
-S #不显示中值和标准差值,当平均值和中值相差超过标准差的一倍或两倍时,
#也不显示警告或错误消息,默认会显示 min/avg/max 值(遗留支持)
-q #如果处理的请求数大于150,ab每处理大约10%或者100个请求时,会在stderr输出一个进度计数,此-q标记可以抑制这些信息
-g filename #把所有测试结果写入一个'gnuplot'或者TSV (以Tab分隔的)文件,
#此文件可以方便地导入到Gnuplot、IDL、Mathematica、Igor甚至Excel中,其中的第一行为标题
-e filename #产生一个以逗号分隔的(CSV)文件, 其中包含了处理每个相应百分比的请求所需要(从1%到100%)的相应百分比的(以微妙为单位)时间
#由于这种格式已经“二进制化”,所以比'gnuplot'格式更有用
-r #不要在套接字接收错误时退出
-h #显示帮助信息
-Z ciphersuite 指定 SSL/TLS 密码套件(请参阅 openssl 密码)
-f protocol 指定 SSL/TLS 协议(SSL2、SSL3、TLS1 或 ALL)
结果说明
[root@localhost ~]# ab -n 10 -c 10 http://192.168.56.10:8030/hello
This is ApacheBench, Version 2.3 <$Revision: 1430300 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking 192.168.56.10 (be patient).....done
Server Software:
Server Hostname: 192.168.56.10 //服务器主机
Server Port: 8030 //服务器端口
Document Path: /hello //测试的路径
Document Length: 18 bytes
Concurrency Level: 10 //并发数
Time taken for tests: 0.072 seconds //测试总时长
Complete requests: 10 //完成请求数量
Failed requests: 0 //失败请求数量
Write errors: 0
Total transferred: 1510 bytes
HTML transferred: 180 bytes
Requests per second: 138.54 [#/sec] (mean) //每秒处理请求数,mean表示这是一个平均值
Time per request: 72.179 [ms] (mean) //平均请求时间,mean表示这是一个平均值
//每个请求的时间 0.489[毫秒],意思为在所有的并发请求每个请求实际运行时间的平均值
//由于对于并发请求 cpu 实际上并不是同时处理的,而是按照每个请求获得的时间片逐个轮转处理的
//所以基本上第一个 Time per request 时间约等于第二个 Time per request 时间乘以并发请求数
Time per request: 7.218 [ms] (mean, across all concurrent requests) //请求平均响应时间
Transfer rate: 20.43 [Kbytes/sec] received //传输速率
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.2 0 1
Processing: 11 43 20.4 61 61
Waiting: 10 31 18.8 41 61
Total: 11 44 20.4 61 61
Percentage of the requests served within a certain time (ms)
50% 61
66% 61
75% 61
80% 61
90% 61
95% 61
98% 61
99% 61
100% 61 (longest request)