分类目录系统

Ubuntu Server 设置IP

NetplanUbuntu 17.10中引入的一种新的命令行网络配置实用程序,用于在Ubuntu系统中轻松管理和配置网络设置。它允许您使用YAML抽象来配置网络接口。它可与NetworkManagersystemd-networkd网络守护程序(称为渲染程序,您可以选择使用其中的哪一个)一起作为内核的接口。

它读取/etc/netplan/*.ymal中描述的网络配置,并且可以将所有网络接口的配置存储在这些文件中。
在本文中。我们将解释如何使用Netplan实用程序在Ubuntu 18.04中为网络接口配置网络静态或动态IP地址

列出Ubuntu上的所有活动网络接口

ifconfig -a

Ubuntu设置静态IP地址

重要提示:如果YAML文件不是由发行版安装程序创建的,则可以使用此命令为渲染器生成所需的配置。

sudo netplan generate
另外,自动生成的文件可能在桌面,服务器,云实例等上有不同的文件名,但是/etc/netplan/*.yaml下的所有文件将被netplan读取。
sudo vim /etc/netplan/xxxx.ymal

然后在ethernet部分添加以下配置。

network:
    ethernets:
        ens33:
            addresses:
            - 192.168.0.118/24
            dhcp4: false
            gateway4: 192.168.0.1
            nameservers:
                addresses:
                - 8.8.8.8
                search: []
    version: 2
  • ens33:网络接口名称
  • dhcp4:接收IPV4接口的dhcp属性
  • dhcp6:接收IPV6接口的dhcp属性
  • addresses:接口的静态地址序列
  • gateway4:默认网关的IPV4地址
  • Nameservers:DNS服务器地址,以,号分割

保存该文件并退出。然后使用以下netplan命令应用最近的网络更改。

sudo netplan apply

可以通过查看netplan手册页找到更多信息和配置选项。

man netplan

关闭ipv6

echo "net.ipv6.conf.all.disable_ipv6     = 1" >>/etc/sysctl.conf
echo "net.ipv6.conf.default.disable_ipv6 = 1" >>/etc/sysctl.conf
echo "net.ipv6.conf.lo.disable_ipv6      = 1" >>/etc/sysctl.conf
reboot

设置DNS resolvconf

vi /etc/systemd/resolved.conf
systemctl restart systemd-resolved

要自行设定DNS服务器有两个方法
(1)关闭systemd-resolvd服务
    systemctl stop systemd-resolvd
    systemctl disable systemd-resolvd
这样对/etc/resolv.conf做出的修改都能保存下来。
    sudo apt install unbound
    sudo rm -rf /etc/resolv.conf
    sudo vim /etc/NetworkManager/NetworkManager.conf

在[main]
下面添加
dns=unbound
将dns服务替换为unbound
reboot
重启电脑即可,开机查看resolve.conf发现nameserver自动配置

/etc/network/interfaces
dns-nameservers 10.123.122.212
dns-nameservers 202.96.134.133
dns-nameservers 8.8.8.8
# nameserver 127.0.0.53
options edns0
search cnotax.com

通过resolvconf实现配置
resolvconfig应用可以实现DNS信息管理,可以通过下面的应用来安装此组件:
sudo apt-get install resolvconf
创建/etc/default/resolvconf缺省配置文件,添加相关环境变量
bob@ubuntu:/etc/resolvconf/resolv.conf.d$ cat /etc/default/resolvconf
TRUNCATE_NAMESERVER_LIST_AFTER_127=no
该环境变量影响保存到/etc/resolv.conf的DNS配置条数。向/etc/resolvconf/resolv.conf.d/base配置文件中添加DNS配置项。
bob@ubuntu:/etc/resolvconf/resolv.conf.d$ cat base
nameserver 10.220.0.11
nameserver 10.220.0.12
search infinera.com
使用下列配置命令使配置生效
sudo resolvconf -u
删除
apt-get remove --purge resolvconf

关闭win10自动更新

右键点击屏幕左下角的开始按钮,在弹出菜单中选择“设置”的菜单项,点击左侧边栏的“Windows更新”的菜单项,接着点击右侧的“高级选项”

运行窗口中输入Gpedit.msc后点击确定按钮,打开的本地组策略编辑器窗口中,依次点击“计算机配置/管理模板/Windows组件/系统更新”的菜单项,然后在右侧打开的窗口中点击“配置自动更新”的设置项

运行窗口中输入Services.msc后点击确定按钮,打开的Windows10的服务窗口中找到Windows Update的服务项,然后停止,禁用,恢复选项卡三个选无操作。

K8问题解决

执行kubeadm init集群初始化时

[WARNING IsDockerSystemdCheck]: detected “cgroupfs” as the Docker cgroup driver. The recommended driver is “systemd”.

[警告IsDockerSystemdCheck]:检测到“cgroupfs”作为Docker cgroup驱动程序。 推荐的驱动程序是“systemd”。

vim /etc/docker/daemon.json

加入以下内容:

{

“exec-opts”:[“native.cgroupdriver=systemd”]

}

 

WARNING FileExisting-socat

socat是一个网络工具, k8s 使用它来进行 pod 的数据交互,出现这个问题直接安装socat即可:

apt-get install socat

手动拉取镜像

flannel的镜像可以使用如下命令拉到,如果你是其他镜像没拉到的话,百度一下就可以找到国内的镜像源地址了,这里记得把最后面的版本号修改成你自己的版本,具体的版本号可以用上面说的kubectl describe命令看到:

docker pull quay-mirror.qiniu.com/coreos/flannel:v0.11.0-amd64
等镜像拉取完了之后需要把镜像名改一下,改成 k8s 没有拉到的那个镜像名称
docker tag quay-mirror.qiniu.com/coreos/flannel:v0.11.0-amd64 quay.io/coreos/flannel:v0.11.0-amd64

工作节点加入失败

在子节点执行kubeadm join命令后返回超时错误

master节点上执行kubeadm token create --print-join-command重新生成加入命令,并使用输出的新命令在工作节点上重新执行即可。

Nginx

docker nginx

$ docker run --name some-nginx -p 80:80 -v /some/content:/usr/share/nginx/html:ro -itd nginx:1.17.6

Nginx + PHP 部署

$ docker run --name  myphp-fpm -v ~/nginx/www:/www  -d php:5.6-fpm
mkdir ~/nginx/conf/conf.d 
在该目录下添加 ~/nginx/conf/conf.d/runoob-test-php.conf 文件,内容如下:
server {
    listen       80;
    server_name  localhost;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm index.php;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    location ~ \.php$ {
        fastcgi_pass   php:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /www/$fastcgi_script_name;
        include        fastcgi_params;
    }
}

    php:9000: 表示 php-fpm 服务的 URL,下面我们会具体说明。
    /www/: 是 myphp-fpm 中 php 文件的存储路径,映射到本地的 ~/nginx/www 目录。

docker run --name php-nginx -p 80:80 -d \
    -v ~/nginx/www:/usr/share/nginx/html:ro \
    -v ~/nginx/conf/conf.d:/etc/nginx/conf.d:ro \
    --privileged=true --link myphp-fpm:php   nginx

   --privileged=true  解决权限
    --link myphp-fpm:php: 把 myphp-fpm 的网络并入 nginx,并通过修改 nginx 的 /etc/hosts,把域名 php 映射成 127.0.0.1,让 nginx 通过 php:9000 访问 php-fpm。

docker pull mysql:5.7
docker run –name mysql-5-7 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d -v ~/www/data:/var/lib/mysql mysql:5.7

docker exec -it mysql-5-7 bash
mysql -uroot -p
GRANT ALL ON . TO ‘root’@’%’;
flush privileges;
exit

docker pull php:7.3-fpm
docker run –name php-fpm-7-3 -d -v ~/www/web:/var/www/html –link mysql-5-7:mysql php:7.3-fpm

#进入 php 容器后执行安装 mysql 扩展
docker exec -it php-fpm-7-3 bash
apt-get update
apt-get install -y libfreetype6 libfreetype6-dev libmcrypt-dev libmcrypt4 libcurl3-dev
apt install build-essential libprotobuf-dev libboost-dev openssl protobuf-compiler
docker-php-ext-install pdo pdo_mysql
docker restart php-fpm-7-3

docker pull nginx
docker run -d –name nginx -p 80:80 -v ~/www/web/:/usr/share/nginx/html -v ~/www/nginx/conf.d:/etc/nginx/conf.d –link php-fpm-7-3:php-fpm nginx

ubuntu zip文件

1.功能作用:解压缩zip文件

2.位置:/usr/bin/unzip

3.格式用法:unzip [-Z] [-opts[modifiers]] file[.zip] [list] [-x xlist] [-d exdir]

4.主要参数

-c 将解压缩的结果显示到屏幕上,并对字符做适当的转换
-p 与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换。
-l 显示压缩文件内所包含的文件
-f 更新现有的文件
-t 检查压缩文件是否正确,但不解压
-u 与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中
-z 仅显示压缩文件的备注文字
-v 执行是时显示详细的信息。或查看压缩文件目录,但不解压
-T 将压缩文件内的所有文件的最新变动时间设为解压缩时候的时间
-x 指定不要处理.zip压缩文件中的哪些文件
-d 指定文件解压缩后所要存储的目录
-n 解压缩时不要覆盖原有的文件
-q 安静模式,执行时不显示任何信息
-o 不必先询问用户,unzip执行后覆盖原有文件
-a 对文本文件进行必要的字符转换
-j 不处理压缩文件中原有的目录路径
-aa 把所有的文件目录当作文本处理
-U use escapes for all non-ASCII Unicode
-UU 忽略Unicode编码字符
-C 压缩文件中的文件名称区分大小写
-L 将压缩文件中的全部文件名改为小写
-X 解压缩时同时回存文件原来的UID/GID
-V 保留VMS的文件版本信息
-K 保留文件的setuid/setgid/tacky属性
-M 将输出结果送到more程序处理
-O 指定字符编码为DOS,Windows和OS/2
-I 指定字符编码为UNIX

5.应用实例
1、把文件解压到当前目录下

unzip test.zip

2、如果要把文件解压到指定的目录下,需要用到-d参数。

unzip -d /temp test.zip

3、解压的时候,有时候不想覆盖已经存在的文件,那么可以加上-n参数

unzip -n test.zip
unzip -n -d /temp test.zip

4、只看一下zip压缩包中包含哪些文件,不进行解压缩

unzip -l test.zip

5、查看显示的文件列表还包含压缩比率

unzip -v test.zip

6、检查zip文件是否损坏

unzip -t test.zip

7、将压缩文件test.zip在指定目录tmp下解压缩,如果已有相同的文件存在,要求unzip命令覆盖原先的文件

您已使用临时配置文件登陆

修改系统注册表,处理电脑启动提示:您已使用临时配置文件登陆的问题

注册表路径:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\ProfileList

选择当前登录的用户文件夹的存储位置,右键删除

Registry 私有仓库

docker pull registry

docker run -itd –name my_registry -p 5000:5000 -v /opt/registry_images:/var/lib/registry registry:2.7.1

vim /etc/docker/daemon.json

增加自己的仓库

{
“insecure-registries”:[“192.168.88.128:5000”],
“registry-mirrors”:[“https://cuzn52fX.mirror.aliyuncs.com”,”https://registry.docker-cn.com”,”https://reg-mirror.qiniu.com”],
“exec-opts”: [“native.cgroupdriver=systemd”]
}

systemctl daemon-reload
systemctl restart docker
Copy到其它机器
scp /etc/docker/daemon.json 192.168.0.28:/etc/docker

查看仓库中的镜像信息
curl http://192.168.88.88:5000/v2/_catalog
{“repositories”:[“coreos/flannel”,”rabbitmq”]}
curl http://192.168.88.88:5000/v2/rabbitmq/tags/list
{“name”:”rabbitmq”,”tags”:[“3-management”]}

Maven

apt install maven

http://maven.apache.org/download.cgi

https://www.runoob.com/maven/maven-setup.html

Maven官网下载

wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz

tar -xvf apache-maven-3.6.3-bin.tar.gz

mv apache-maven-3.6.3 maven3

vim /etc/profile

#maven
export M2_HOME=/opt/maven/maven3
export CLASSPATH=$CLASSPATH:$M2_HOME/lib
export PATH=$PATH:$M2_HOME/bin

source /etc/profile

mvn -v

Apache Maven 3.6.0
Maven home: /usr/share/maven
Java version: 1.8.0_222, vendor: Private Build, runtime: /usr/lib/jvm/java-8-openjdk-amd64/jre

修改maven镜像

cd /usr/share/maven/conf
vim settings.xml

<mirrors>
    <mirror>
      <id>aliyun-maven</id>
      <mirrorOf>*mirror</Of>
      <name>aliyun maven mirror</name>
      <url>https://maven.aliyun.com/repository/central</url>
    </mirror>
  </mirrors>

FYI
*,!jeecg,!jeecg-snapshots
如果不加!jeecg,!jeecg-snapshots,默认所有的依赖都会去阿里云仓库下载,加上后jeecg的依赖包就可以从jeecg私服下载了。

Java 安装配制

Java,OpenJDK和Oracle Java有两个主要的实现,几乎没有区别,只是Oracle Java有一些额外的商业功能。

Ubuntu系统

  • OpenJDK
    • 安装OpenJDK 10 JDK
      $sudo apt install default-jdk

    • 安装OpenJDK 8 JDK
      $sudo apt install openjdk-8-jdk
      install path /usr/lib/jvm/java-8-openjdk-amd64

    • 安装OpenJDK 8 JRE
      apt install openjdk-8-jre-headless or apt install default-jre

  • Oracle java

    • 进入官网下载
    • 选择需要的版本,进入下载页面
    • 下载完成解压
    • 创建安装目录
      本人安装目录是/usr/java下,需要cd /usr进入usr目录
      创建java文件夹,命令sudo mkdir java
      为了后续方便,将java目录赋予最高权限,命令sudo chmod 777 java
    • 复制并解压
      将下载的文件移动到java目录下
      tar -zxvf jdk-8u144-linux-x64.gz
    • 配置java
    输入sudo vim /etc/profile
    #Java安装目录
    export JAVA_HOME=/usr/java/jdk1.8.0_144
    #下面都一样啦
    export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
    export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
    export JRE_HOME=$JAVA_HOME/jre
    
    • 启用java
      source /etc/profile
    • 检查java
      java -version
  • Apt安装
    • 安装工具
      $sudo apt install software-properties-common dirmngr
    • 添加WebUpd8存储库并安装Oracle Java:
      $sudo add-apt-repository ppa:webupd8team/java
      $sudo apt update
    • 安装Oracle Java 8
      $apt-get install oracle-java8-installer
    • 多版本切换
      $sudo update-alternatives –config java

MAC多版本

vi ~/.bash_profile
#JAVA
# 实际安装路径 /Library/Java/JavaVirtualMachines
#JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-10.0.2.jdk/Contents/Home
export JAVA_8_HOME="$(/usr/libexec/java_home -v 1.8)"
export JAVA_10_HOME="$(/usr/libexec/java_home -v 10.0)"

alias jdk8='export JAVA_HOME=$JAVA_8_HOME'
alias jdk10='export JAVA_HOME=$JAVA_10_HOME'

# 默认使用JDK8
export JAVA_HOME=$JAVA_8_HOME

PATH=$JAVA_HOME/bin:$PATH:.
CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.

export PATH
export CLASSPATH

source ~/.bash_profile
use jdk8 ro jdk10  change version

Windows

JAVA_HOME:C:\Program Files\Java\jdk1.8.0_202(jdk目录路径)
CLASSPATH:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
Path:%JAVA_HOME%\bin;%PATH%
注意:如果是Windows10系统,分开写
%Java_Home%\bin
%Java_Home%\jre\bin

显示jvaa安装路径
whereis java (java安装路径)
which java (java执行路径)

echo $JAVA_HOME(java环境变量)
echo $PATH (环境变量路径)
update-alternatives –config java
jrunscript -e ‘java.lang.System.out.println(java.lang.System.getProperty(“java.home”));’ echo $JAVA_HOME

卸载

sudo apt-get autoremove default-jdk
如果不能卸载干净,用下面的方法:
jdk彻底卸载:
(1) apt-get update
(2) apt-cache search java | awk ‘{print($1)}’ | grep -E -e ‘^(ia32-)?(sun|Oracle)-java’ -e ‘^openjdk-’ -e ‘^icedtea’ -e ‘^(default|gcj)-j(re|dk)’ -e ‘^gcj-(.*)-j(re|dk)’ -e ‘java-common’ | xargs sudo apt-get -y remove
(3) apt-get -y autoremove

2、清除配置信息: dpkg -l | grep ^rc | awk ‘{print($2)}’ | xargs sudo apt-get -y purge

3、清除java配置及缓存: bash -c ‘ls -d /home/*/.java’ | xargs sudo rm -rf

4、手动清除JVMs: rm -rf /usr/lib/jvm/*

5、java -version 查看,卸载成功