Latest Entries »

一、环境介绍
之前的环境:
UEFI-GPT
arch linux
/dev/sdb

更换后硬盘为计算机的第一块硬盘
UEFI-GPT
arch linux
/dev/sda

二、故障现象
ARCH LINUX已无法引导,无法找到系统。

三、排错过程
ARCH光盘引导启动系统,bash进入shell环境

1、查看磁盘分区信息
lsblk

2、挂载去/mnt
mount /dev/sda3 /mnt/
mount /dev/sda1 /mnt/boot
arch-chroot /mnt

3、安装GRUB
grub-install –target=x86_64-efi –efi-directory=/boot –bootloader-id=GRUB

grub-mkconfig -o /boot/grub/grub.cfg

4、更改fstab设置
sed -i ‘s/sdb/sda/g’ /etc/fstab

5、重启
reboot

ESXi命令行升级版本与补丁

1、补丁包下载地址
https://customerconnect.vmware.com/cn/patch

2、服务器开启SSH,进入维护模式
esxcli system maintenanceMode set –enable true

3、查看当前版本及补丁信息
vmware -vl

4、查找补丁包的配置文件名称(绝对路径)
esxcli software sources profile list -d /vmfs/volumes/datastore1/data/ESXi670-20xxx.zip

5、使用包里面的 ESXi-6.7.0-20yy-standard 进行升级(绝对路径)
esxcli software profile update -p ESXi-6.7.0-20yy-standard -d /vmfs/volumes/datastore1/data/ESXi670-20xxx.zip

6、重启
reboot

7、检查版本与补丁信息,确认升级成功
vmware -vl

centos重置忘记的root密码

rhel4~6版本:
一,没有GRUB密码:
1、看到GRUB引导菜单按e进入编辑
2、滚动到”kernel…“那一行,按e编辑,在行尾添加数字1,按回车键
3、按b键引导kernel进入单用户模式
4、#passwd修改密码

二、具有GRUB密码保护:
1、通过光盘引导,在红帽引导菜单出现输入linux rescue按回车进入救援模式
2、提示启动网络设备选择”no”
3、提示在救援模式挂载已安装的LINUX根目录到/mnt/sysimage目录,选择”continue”
4、执行命令#chroot /mnt/sysimage更换根目录
5、#/usr/bin/passwd修改密码

三、使用lilo引导程序:
1、当系统进入lilo提示符,输入linux single按回车进入单用户模式
2、#passwd root
3、reboot

四、若LILO引导菜单是0秒等待时间,那就在LILO引导内核之前按下任意键打断即可。

rhle7~9版本:
一、用引导光盘boot.iso(风险最小,u推荐)
1、从光盘引导,选择Troubleshooting > Rescue a system
2、正常挂载系统盘,default
3、更换根目录#chroot /nmt/sysimage
4、#passwd root
5、reboot

二、无光盘引导
1、出现grub2菜单时按esc打断倒数计时,按e开始编辑
2、选择到“linux16″或”linuxefi”这一行,在行尾添加”rd.break”。推荐去掉本行的”rhgb quiet”字符
3、按ctrl+x引导系统
4、重新挂载系统分区为可写模式#mount -o remount,rw /sysroot
5、更换根目录#chroot /sysroot
6、更改密码#passwd
7、更改密码后SELINUX会故障,造成无法启动,需要在系统重启后重新标记所有文件SELINUX信息#touch /.autorelabel
8、退出更换根目录环境#exit
9、退出命令提示符#exit
ps:selinux重新标记文件会耗时很久,请耐心等待。

三、若磁盘容量很大,不想等SELINUX重新标记,可采取如下办法重置root密码:
1、Grub > e
2、rd.break enforcing=0 > Ctrl+x
3、mount -o remount,rw /sysroot/
4、chroot /sysroot/
5、passwd root or passwd
6、restorcon /etc/shadow
7、setenforce 1

ps:
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/system_administrators_guide/ch-working_with_the_grub_2_boot_loader#sec-Changing_and_Resetting_the_Root_Password
https://docs.fedoraproject.org/en-US/Fedora/26/html/System_Administrators_Guide/sec-Changing_and_Resetting_the_Root_Password.html#proc-Resetting_the_Root_Password_Using_rd.break

TCPDUMP 捕获显示 SYN包 到达设备而没有任何ACK确认

vi /etc/sysctl.conf
net.ipv4.tcp_tw_recycle=0
net.ipv4.tcp_timestamps=0

# 生效
sysctl -p

nginx反代google

server {
listen 80;
server_name http://www.urdomain.com;

location / {
proxy_pass https://www.google.com;
proxy_redirect off;
proxy_set_header Host http://www.google.com;
proxy_set_header Accept-Encoding “”;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
sub_filter https://www.google.com http://www.urdomain.com;
sub_filter_once off;
sub_filter_types *;
}

重置nsx密码

1、进入grub引导菜单
开机引导时不停的按”esc”或者”shift”

2、出现 GRUB 引导菜单时按e编辑
用户是root
密码是VMware1

3、编辑grub菜单linux开头的行。例如
linux /vmlinuz-4.24.74-nn4-server root=UUID=5b76f\
2c8-784c-4241-950e-c8d3dca486c7 ro audit=1 quiet splash rootdelay=90 net\
.ifnames=0 biosdevname=0 $vt_handoff
修改为
linux /vmlinuz-4.24.74-nn4-server root=UUID=5b76f\
2c8-784c-4241-950e-c8d3dca486c7 rw single init=/bin/bash

4、按 Ctrl-X 进行引导

5、修改root口令
passwd

6、修改admin口令
passwd admin

6、重启
reboot -f

PS:
https://docs.vmware.com/cn/VMware-NSX-T-Data-Center/3.2/installation/GUID-4630C9D5-71FB-4991-AC1D-9FDBA0B86120.html
https://docs.vmware.com/cn/VMware-NSX-T-Data-Center/3.2/administration/GUID-8816B842-2EC4-40A8-A618-F68DB29FABD2.html
https://docs.vmware.com/tw/VMware-NSX-T-Data-Center/2.5/administration/GUID-8816B842-2EC4-40A8-A618-F68DB29FABD2.html

Docker常用命令

1.检索镜像
docker search 关键字

2. 查看镜像
docker images

3.查看运行中的容器
docker ps
查看所有已经创建的容器,包括已经停止的容器
docker ps -a
用一行列出所有正在运行的container(容器多的时候非常清晰)
docker ps | less -S
列出最近一次启动的container
docker ps -l
显示一个运行的容器里面的进程信息
docker top Name/ID
查看容器内部详情细节:
docker inspect
在容器中安装新的程序
docker run image_name apt-get install -y app_name
保存对容器的修改(commit) 当你对某一个容器做了修改之后(通过在容器中运行某一个命令),可以把对容器的修改保存下来,这样下次可以从保存后的最新状态运行该容器。
docker commit ID new_image_name

4.从dockerhub拉取镜像
这里以redis镜像为例,我们选择基于alpine基础镜像的版本,体积较小
docker pull redis:6.0.9-alpine3.12
参数:
docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]

5.运行镜像(创建容器)
启动容器并启动bash(交互方式):
docker run -i -t /bin/bash
启动容器以后台方式运行(更通用的方式)
docker run -d –rm –name myredis -p 6380:6379 redis:6.0.9-alpine3.12 redis-server
参数讲解:
–detach , -d 容器后台运行,并打印容器ID
–rm 如果已经有同名的容器,移除同名容器
–name 给容器起个名字
–publish , -p 端口映射,将宿主机的端口(冒号左边)和容器内的端口(冒号右边)映射
倒数第二个参数redis:6.0.9-alpine3.12是要执行的镜像,倒数第一个参数redis-server代表要执行的具体指令

6.进入运行的容器
docker exec -i -t myredis /bin/bash
参数讲解:
–interactive , -i Keep STDIN open even if not attached打开标准输入接受用户输入命令
–tty , -t Allocate a pseudo-TTY
-d, –detach 在容器中后台执行命令;
倒数第二个参数是容器名(也可以用容器ID),倒数第一个参数是要执行的具体指令

7.停止容器运行
docker stop myredis
这里也可以使用容器ID,一次停止多个容器,可以在后面用空格分隔

8.清理已经停止的容器
docker container prune

9.删除指定镜像
docker rmi

10.将镜像保存为归档文件
docker save

11.导入镜像
docker load

12.镜像构建
docker build

13.镜像运行,就是新建并运行一个容器。
docker run [镜像ID]

14.启动已终止容器
docker start [容器ID]

15.停止运行的容器
docker stop [容器ID]

16.杀死容器进程
docker kill [容器ID]

17.重启容器
docker restart [容器ID]

18.删除容器
docker rm [容器ID]
删除所有容器
docker rm `docker ps -a -q`

19.导出容器
#导出一个已经创建的容器到一个文件
docker export [容器ID]

20.导入容器
# 导出的容器快照文件可以再导入为镜像
docker import [路径]

21.查看日志
docker logs [容器ID]
实时查看日志输出
docker logs -f (类似 tail -f) (带上时间戳-t)
这个命令有以下常用参数 -f : 跟踪日志输出
–since :显示某个开始时间的所有日志 -t : 显示时间戳 –tail :仅列出最新N条容器日志

22.复制文件
# 从主机复制到容器
docker cp host_path containerID:container_path
# 从容器复制到主机
docker cp containerID:container_path host_path

23.显示一个镜像的历史;
docker history image_name

24.发布docker镜像
docker push new_image_name
要发布到私有Registry中的镜像,在镜像命名中需要带上Registry的域名(如果非80端口,同时需要带上端口号)比如:
docker push dockerhub.yourdomain.com:443/hello.demo.kdemo:v1.0

25.查看docker0的网络(宿主机上操作)
ip a show docker0

26.查看容器的IP地址
docker inspect -f ‘{{ .NetworkSettings.IPAddress }}’

27.附着到容器内部查看其内部ip:
ip a show eth0

==============
Dockerfile中一些常见的指令:

FROM:指定基础镜像
RUN:执行命令
COPY:复制文件
ADD:更高级的复制文件
CMD:容器启动命令
ENV:设置环境变量
EXPOSE:暴露端口

WEBLOGIC从单个模板创建域脚本

# 调用WLST来执行.py脚本
# source /$DOMAIN_HOME/bin/setDomainEnv.sh
# java weblogic.WLST xxx.py

# Read the template to use for creating the domain
readTemplate(‘oracle_home/middleware/wlserver/common/templates/wls/wls.jar’)

# Set the listen address and listen port for the Administration Server
cd(‘Servers/AdminServer’)
set(‘ListenAddress’,”)
set(‘ListenPort’, 7001)

# Enable SSL on the Administration Server and set the SSL listen address and port
create(‘AdminServer’,’SSL’)
cd(‘SSL/AdminServer’)
set(‘Enabled’, ‘True’)
set(‘ListenPort’, 7002)

# Set the domain password for the WebLogic Server administration user
cd(‘/’)
cd(‘Security/base_domain/User/’adminusername’)
cmo.setPassword(‘adminpassword’)

# If the domain already exists, overwrite the domain
setOption(‘OverwriteDomain’, ‘true’)

# write the domain and close the template
writeDomain(‘/domains/mydomain’)
closeTemplate()

exit()

# 调用WLST来执行.py脚本
# source $DOMAIN_HOME/bin/setDomainEnv.sh
# java weblogic.WLST xxx.py

connect(“weblogic”,”weblogic21″,”t3://127.0.0.1:7001″)
edit()
startEdit()

cd(‘/SecurityConfiguration/’+domainName);

cmo.setConnectionFilter(‘weblogic.security.net.ConnectionFilterImpl’)

set(‘ConnectionFilterRules’,jarray.array([String(‘10.0.0.0/8 * * allow t3 t3s’),String(‘127.0.0.1 * * allow t3 t3s’),String(‘* * 7001 deny t3 t3s’)],String))

save()
activate()

# 调用WLST来执行.py脚本
# source /$DOMAIN_HOME/bin/setDomainEnv.sh
# java weblogic.WLST xxx.py

connect(username=”weblogic”,password=”weblogic21″,url=”t3://127.0.0.1:7001″)

domainConfig()
edit()
startEdit()

servers=cmo.getServers()
for server in servers:
cd(‘/Servers/’ + server.getName())
cmo.setIIOPEnabled(false)

save()
activate()
disconnect()
exit()