linux的一些操作指令

//树莓派操作指令

烧录后:
        默认用户名pi、
        默认密码raspberry
        默认开启用户pi的ssh
       
        默认不开启root的ssh
        默认不支持VNC

        sudo su 无密码切换到root
        输入sudo raspi-config进入树莓派设置界面
        选interfacing Options
        选VNC

        设置连接WIFI
        sdjty    1234567890
        设置树莓派pi   raspberry
                        root 1234567890
        
        修改root密码
        sudo passwd root
        切换到root
        su root
        修改pi密码
        sudo passwd pi
        切换到pi
        su pi

        改完密码后多切换几次用户名,看看修改有没有生效。

1.默认允许以用户pi(默认密码raspberry)进行登录
2.以root用户登录,需要以用户pi登录,修改root密码,并开启root的ssh远程登录权限,具体步骤如下:
2.1.以用户pi登录
2.2.修改root登录密码,输入下面的命令,会提示输入新的密码
sudo passwd root
2.3.解锁root用户
sudo passwd -u root
2.4.修改ssh的配置文件/etc/ssh/sshd_config,将配置项PermitRootLoginwithout-password或者#PermitRootLogin prohibit-password
修改为PermitRootLogin yes,重启系统之后就可以登录

sudo nano /etc/ssh/sshd_config
LoginGraceTime 2m
PermitRootLogin yes
StrictModes yes


        开启root的ssh的权利
        用nano打开/etc/ssh/sshd_config
        将PermitRootLoginwithout-password修改为PermitRootLogin yes
        别用原生的vi,太难用了,除非卸载后更新vi。nano还支持不同颜色,为什么不用。
        甚至于你可以将PermitEmptyPasswords no改成PermitEmptyPasswords yes,即允许无密码,自由从pi切换到root。
        树莓派换源,要注意你使用的树莓派是buster还是stretch

        # 编辑 `/etc/apt/sources.list` 文件,删除原文件所有内容,用以下内容取代:
        deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib rpi
        deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib rpi

        # 编辑 `/etc/apt/sources.list.d/raspi.list` 文件,删除原文件所有内容,用以下内容取代:
        deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main ui
        换源之后apt-get update,然后apt-get upgrade

       getconf LONG_BIT        # 查看系统位数
       uname -a            # kernel 版本
       /opt/vc/bin/vcgencmd  version   # firmware版本
       strings /boot/start.elf  |  grep VC_BUILD_ID    # firmware版本
       cat /proc/version       # kernel
       cat /etc/os-release     # OS版本资讯
       cat /etc/issue          # Linux distro 版本
       cat /etc/debian_version     # Debian版本编号

      查看内存使用情况,可以知道交换分区情况,free

      同步时间,树莓派一旦断电,就会时间不准,每次开机都得矫正一下。

      运行命令启用NTP
      sudo timedatectl set-ntp true
      date查看一下
      修改时区
      sudo dpkg-reconfigure tzdata
      选择 Asia亚洲,
      选择shanghai,中国有四个时区上榜,重庆、香港、台北、上海、没找到北京。


      安装docker
      sudo curl -sSL https://get.docker.com | sh

      禁用交换空间
       sudo dphys-swapfile swapoff
       sudo dphys-swapfile uninstall
       sudo update-rc.d dphys-swapfile remove

       k8s node节点重新加入集群失败问题解决;k8snode节点安装失败,或者master节点坏掉,重新部署完毕master节点后,node节点无法加入集群,总之就是node节点已经装过一次,现在有残留,想要重新装一次。
解决方法,出现这种问题主要原因是之前kubeadm init初始化过,所以一些配置文件及服务均已存在,重新执行
kubeadm join时必然会导致冲突,解决方法如下:
重新初始化节点配置,转到/usr/local/keadm-v1.4.0-linux-arm/keadm#执行  ./kubeadm reset
然后重新加入集群,如果是node节点,就用kubeadm join --token xxxxx master_ip:6443 --discovery-token-ca-cert-hash sha256:xxxx  ,如果token失效,到主节点执行:kubeadm token create重新生成。

如果是dege节点丢失了,那么也是这样的重置一下,重新加入。

172.16.0.103 edge-node
172.16.0.104 master

# GitHub Start
185.199.109.133 raw.githubusercontent.com
185.199.108.133 raw.githubusercontent.com
185.199.111.133 raw.githubusercontent.com
185.199.110.133 raw.githubusercontent.com
# GitHub End


cd /usr/local/ke...../ke....
./keadm gettoken

./keadm init --advertise-address="172.16.0.104" --kubeedge-version=1.4.0

./keadm join --cloudcore-ipport=172.16.0.104:10000 --edgenode-name=edge-node --kubeedge-version=1.4.0 --token=9d7fd2b69e36697d64a7e1af53d0bc22da768c8a1471fc4ad312548ff2f69c53.eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MjA4MDkxMzJ9.xJBNI__mxbzSxzQpZCYqTd4YdKkFTI1bmWijPo6PqLg




export ftp_proxy=http://192.168.8.143:7890
export http_proxy=http://192.168.8.143:7890
export https_proxy=http://192.168.8.143:7890
export all_proxy=http://192.168.8.143:7890
export no_proxy=localhost,127.0.0.1,.baidu.net

curl -I www.google.com


https://ask.csdn.net/questions/6733408

cgroup的问题这样改,加两句话,位置比较重要,不用全盘复制。
enable in /boot/cmdline.txt by including : cgroup_memory=1 cgroup_enable=memory. Like this:
console=tty1 root=PARTUUID=9f7945f8-02 rootfstype=ext4 elevator=deadline fsck.repair=yes cgroup_memory=1 cgroup_enable=memory rootwait quiet splash plymouth.ignore-serial-consoles

改为以后用下面的查看一下
cat /proc/cgroups

       

树莓派暴力断电关机会引发下次连不上wifi的问题,重新添加一下ssh和wpa_supplicant文件

https://mirror.tuna.tsinghua.edu.cn/help/centos/



大服务器F11进Bios,小服务器F2进Bios


一个Kubernetes集群由一组被称作节点的机器组成,这些节点上运行Kubernetes所管理的容器化应用。

工作节点托管作为应用负载的组件的Pod。控制平面管理集群中的工作节点和Pod。为集群提供故障转移。

Control Plane里面有几个重要的东西,也就是master里面有几个重要的东西。
c-c-m   
c-m,理论上有很多个,但是事实是编译到同一个可执行文件。
etcd比较重要,是一个数据库。
sched,负责监视新创建的、未指定运行节点的Pods,选择节点让Pod在上面运行。

Node里面重要的是kubelet和k-proxy

kubelet是一个在集群中每个节点上运行的代理,它保证容器都运行在Pod中。
kube-proxy是集群中每个节点上运行的网络代理。

Container Runtime是一个负责运行容器的软件,支持docker

kubernetes控制面的核心是API服务器。kubectl和kubeadm这类命令的背后也是调用API。

要多看看安装完以后的各个文件。

API组和版本也有关系的,kubernetes支持多个API版本。

如何描述kubernetes对象,可以在命令中带一个描述性的yaml文件。kubectl apply -f  

kubectl create -f 
kubectl delete -f 
kubectl replace -f

kubectl diff -f configs/
kubectl apply -f configs/

除了kubectl和dashboard之外,还可以使用其它工具来可视化和管理kubernetes对象。



centos下安装opencv
sudo yum install dnf
sudo dnf install opencv opencv-devel opencv-python

然后就可以自己写一份代码试试
#include
#include
using namespace std;
int main(){
    
    return 0;
}




linux下编译gcc文件
gcc -o SocketServerMat SocketServerMat.cpp

如果,我是说如果报错了,而且错误是undefined reference to `std::ios_base::Init::Init(),那么
用gcc(C编译器)编译C++程序,会报标题的错误。

原因是用gcc编译c++程序时,链接的库文件为libstdc++.so,而不是默认的libc.so,因此需要用-lstdc++参数指明,否则会在链接时发生错误.
如: gcc helloworld.cpp -lstdc++
上面那一句就这么写。
 gcc -o SocketServerMat SocketServerMat.cpp  -lstdc++


2021年5月17日重要博客
python3 --version

NAVIDA Jetson TX2安装opencv-python并且用其调用板载摄像头,USB/网口相机显示图像
/opencv/myopencv.py


master下
/usr/local/opencv-py


**************************************************************************************************************************
centos查看所有用于登录的用户
cat /etc/passwd | grep -v /sbin/nologin | cut -d : -f 1 #查看可以登录系统的用户


centos7创建用户并授权sudo su权限
1、创建一个新用户(整个操作都在超级管理员权限下)  
# adduser admin
2、为新用户设置密码
# passwd admin    (如果提示密码无效,别管它,重新输入一遍即可)
3、查看/etc/sudoers的权限
# ll /etc/sudoers
4、增加到可读可写可执行权限(及777权限),如果已经是777权限,那么请忽略这一步
# chmod 777 /etc/sudoers
5、把用户添加到sudoers,给用户名权限
# echo 'admin ALL=(ALL) ALL' >> /etc/sudoers
6、再把sudoers的777权限给去掉
# chmod 440 /etc/sudoers
7、现在新用户及权限就添加完毕了,退出当前的用户就可登录新建的用户了
8、删除用户组
userdel -rf <username>
9、虚拟机选择桥接模式的时候有一个小技巧,由于桥接一般是自动桥接,所以往往会发现桥接到了无线网卡上,而不是想要的有线网卡,
关闭无线连接就好了。或者改为有线网桥接。

chmod 755 文件


adduser xufei
passwd xufei
chmod 777 /etc/sudoers
echo 'xufei ALL=(ALL) ALL' >> /etc/sudoers
chmod 440 /etc/sudoers
**************************************************************************************************************************

一个好用的内网穿透工具natapp
./natapp -authtoken=

centos换源请看清华源help


**************************************************************************************************************************
centos安装golang
1、传包,解压。/usr/local下
2、打开环境变量文件
vi /etc/profile 
3、在环境变量最后添加GOROOT环境变量,GOROOT变量为go的安装目录,类似java的jdk安装目录,GOPATH类似eclipse的workspace
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
export GOPATH=/root/go
export PATH=$PATH:$GOPATH/BIN
4、刷新环境变量
source /etc/profile
5、查看go是否安装成功
go --version

**************************************************************************************************************************

**************************************************************************************************************************
 
有时候socket通讯被阻断,是因为开了防火墙,
systemctl status firewalld
systemctl stop firewalld
这是新防火墙,而不是老的iptables

调用socket程序显示摄像头的时候,提示
Qt: Session management error: None of the authentication protocols specified are supported
这个问题的根源是当前是以root身份进行登录的,而运行程序需要更换一种角色。退出root 运行应用程序就OK了。

虚拟机中调用物理机的摄像头有两部
1、USB控制器,USB兼容性改3.0
2、虚拟机-->可移动设备-->Syntek,让摄像头与虚拟机连接。

linux下查找文件的命令,全盘根据名字查找。
find / -name proxy-admin

**************************************************************************************************************************

**************************************************************************************************************************
不好用,已经不用了。

centos安装opencv2.4   
1、在安装之前,要先配置好epel源,因为下面的某些安装在系统自带的源中找不到
yum -y install epel-release
2、首先是gcc,g++等这些基本的工具,一般都是有的。没有的话就用yum install来安装。
yum install gcc gcc-c++  
yum install cmake  
yum install python-devel numpy 
3、安装opencv的依赖项
yum install gtk2-devel  
yum install libdc1394-devel  
yum install libv4l-devel  
yum install gstreamer-plugins-base-devel
4、安装ffmpeg-devel
wget https://forensics.cert.org/cert-forensics-tools-release-el7.rpm
rpm -Uvh cert-forensics-tools-release*rpm
yum --enablerepo=forensics install ffmpeg-devel
5、安装opencv2
wget https://github.com/opencv/opencv/archive/2.4.13.6.zip
unzip 2.4.13.6.zip
cd opencv-2.4.13.6

mkdir build
cd build  
cmake ..  
如果报错in-source builds are not allowed
则删除CMakeCache.txt 
rm CMakeCache.txt 

make  

6、查看linux下的opencv安装版本:
pkg-config opencv --modversion
**************************************************************************************************************************
centos安装python3和pip3,并且解决与2同名冲突问题。
1、安装python依赖
yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel
2、下载安装包
wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz
3、解压
tar -zxvf Python-3.6.5.tgz
4、进入文件夹
cd Python-3.6.5
5、创建安装目录(不会随意安装)
mkdir /usr/local/python3
6、指明安装路径
./configure -prefix=/usr/local/python3
7、编译安装,得有gcc
sudo make && make install
8、建立链接
ln -s /usr/local/python3/bin/python3 /usr/bin/python3 #为python3创建软连接
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3  #为pip3创建软连接
9、验证
python3  # 输入
pip3 -V  #V大写

10、更新pip3,否则无法用pip3安装numpy和opencv,现在的pip3是9.0的,不是最新的。
pip3 install --upgrade pip
11、安装numpy
pip3 install numpy或者pip3 install --upgrade numpy
12、安装opencv
pip3 install --upgrade opencv-python或者pip3 install opencv-python

主要是一定要记住pip3 install --upgrade pip,后面的问题都好解决。
13、查看pip3安装的包
pip3 list

14、卸载和删除python3
卸载python3
      rpm -qa|grep python3|xargs rpm -ev --allmatches --nodeps       卸载pyhton3
      whereis python3 |xargs rm -frv           删除所有残余文件
      成功卸载!
      whereis   python       查看现有安装的python

**************************************************************************************************************************
搭建proxy
在vps上执行
proxy bridge -p ":33080" -C proxy.crt -K proxy.key
proxy server -r ":28080@:8002" -P "127.0.0.1:33080" -C proxy.crt -K proxy.key

在公司机器A上面执行
proxy client -P "111.229.175.232:33080" -C proxy.crt -K proxy.key

完成

proxy bridge -p ":33080" -C proxy.crt -K proxy.key
proxy server -r ":28080@:8030" -P "127.0.0.1:33080" -C proxy.crt -K proxy.key

在公司机器A上面执行
proxy client -P "47.108.49.230:33080" -C proxy.crt -K proxy.key

完成

**************************************************************************************************************************


**************************************************************************************************************************
//ubuntu设置
服务器配完ubuntu系统以及LNMP环境以后,想用WINSCP远程登录,就需要开启SSH服务才能支持。

 SSH服务分为客户端和服务器。顾名思义,我想用WINSCP远程登录Ubuntu服务器,所以需要安装SSH server。

OK,下面介绍如何开启SSH服务。

一、检查是否开启SSH服务 

因为Ubuntu默认是不安装SSH服务的,所以在安装之前可以查看目前系统是否安装,通过以下命令:

 ps -e|grep ssh 
输出的结果ssh-agent表示ssh-client启动,sshd表示ssh-server启动。我们是需要安装服务端所以应该看是否有sshd,如果没有则说明没有安装。

二、安装SSH服务

#客户端
sudo apt-get install openssh-client
#服务器
sudo apt-get install openssh-server
  或者

apt-get install ssh
三、启动SSH服务 

sudo /etc/init.d/ssh start
四、修改SSH配置文件 

可以通过SSH配置文件更改包括端口、是否允许root登录等设置,配置文件位置:

/etc/ssh/sshd_config
 默认是不允许root远程登录的,可以再配置文件开启。

sudo vim /etc/ssh/sshd_config
 找到PermitRootLogin without-password 修改为PermitRootLogin yes

 五、重启SSH服务

 service ssh restart

 即可通过winscp 、putty使用ROOT权限远程登录。

 启用root用户:sudo passwd root      //修改密码后就启用了。

 客户端如果是ubuntu的话,则已经安装好ssh client,可以用下面的命令连接远程服务器。

查看磁盘使用情况,df -h


**************************************************************************************************************************
//龙芯

用户root  root
long long

HUAWEI_06DL
Y4J9R3LR

long芯mac地址
00:1E:10:1F:00:00

sudo nano /etc/ssh/sshd_config
LoginGraceTime 2m
PermitRootLogin yes
StrictModes yes

https://hub.docker.com/repository/docker/loongnixk8s

docker pull loongnixk8s/node:v3.13.2
docker pull loongnixk8s/cni:v3.13.2
docker pull loongnixk8s/pod2daemon-flexvol:v3.13.2
docker pull loongnixk8s/kube-controllers:v3.13.2
docker pull loongnixk8s/kube-apiserver-mips64le:v1.18.3
docker pull loongnixk8s/kube-controller-manager-mips64le:v1.18.3
docker pull loongnixk8s/kube-proxy-mips64le:v1.18.3
docker pull loongnixk8s/kube-scheduler-mips64le:v1.18.3
docker pull loongnixk8s/pause:3.2
docker pull loongnixk8s/coredns:1.6.5
docker pull loongnixk8s/etcd:3.3.12


docker镜像的批量导出脚本
#!/bin/sh
#docker save $(docker images --format '{{.Repository}}:{{.Tag}}') -o allinone.tar

IMAGES=$(docker images --format '{{.Repository}}:{{.Tag}}')

for element in ${IMAGES[@]}
do

  echo "saving ${element} ..."
  docker save ${element} >> allinone.tar
  echo "${element} saved"
done


kubeadm-1.18.3-0.mips64el.rpm
kubectl-1.18.3-0.mips64el.rpm
kubelet-1.18.3-0.mips64el.rpm
kubernetes-cni-0.8.6-0.mips64el.rpm

千兆网上网模式
sssss
admin
1234567890

关闭所有防火墙,包括windows的
sshd随机自启

docker 存出镜像需要注意的一个问题
正确:docker save <repository>:<tag> -o <repository>.tar
错误:docker save <IMAGE ID> -o <repository>.tar(会导致载入镜像后名字标签都为<none>)
如果docker载入新的镜像后repository和tag名称都为none
那么通过tag的方法增加名字标签
docker tag <IMAGE ID> <repository>:<tag>


我找到的包
docker.io/loongnixk8s/coredns                            1.6.5               c36e05b0fbb8        5 months ago        40.8 MB
docker.io/loongnixk8s/kube-apiserver-mips64le            v1.18.3             db84b163a21e        7 months ago        222 MB
docker.io/loongnixk8s/kube-controller-manager-mips64le   v1.18.3             8b93be1b27b9        7 months ago        210 MB
docker.io/loongnixk8s/kube-scheduler-mips64le            v1.18.3             d50cb0ffd0c4        7 months ago        119 MB
docker.io/loongnixk8s/kube-proxy-mips64le                v1.18.3             87afa7b09bfd        7 months ago        137 MB
docker.io/loongnixk8s/node                               v3.13.2             a5d19f129dea        9 months ago        231 MB
docker.io/loongnixk8s/pod2daemon-flexvol                 v3.13.2             6fa6398f8540        10 months ago       124 MB
docker.io/loongnixk8s/cni                                v3.13.2             c14ac7807e5c        10 months ago       161 MB
docker.io/loongnixk8s/kube-controllers                   v3.13.2             488eeba8f21e        10 months ago       55.3 MB
docker.io/loongnixk8s/pause                              3.2                 d52dc88f0f11        10 months ago       769 kB
docker.io/loongnixk8s/etcd                               3.3.12              cd3b6f594d56        11 months ago       176 MB

龙芯需要的包
loongnixk8s/kube-apiserver:v1.18.3
loongnixk8s/kube-controller-manager:v1.18.3
loongnixk8s/kube-scheduler:v1.18.3
loongnixk8s/kube-proxy:v1.18.3
loongnixk8s/pause:3.2
loongnixk8s/etcd:3.4.3-0
loongnixk8s/coredns:1.6.7

可以看到
loongnixk8s/etcd:3.4.3-0
loongnixk8s/coredns:1.6.7
版本不符合

1.查看占用程序

netstat -apn | grep 443
最后一项显示的是pid和对应的名称
2.杀掉对应的进程,彻底杀死进程
kill -9 pid

172.16.0.101 FC:45:96:A1:55:D2 tian
172.16.0.102 44:37:E6:EA:78:C3 node
172.16.0.103 B8:27:EB:BE:75:BC 树莓派
172.16.0.104 20:47:47:80:6D:30 master
172.16.0.105 00:0B:2F:16:EC:5B long
172.16.0.106 50:7B:9D:19:72:70 xf

windows更新以后,安全等级提高了,会禁止陌生设备ping,比如mips

**************************************************************************************************************************
//uos统信安装
uos稳定的源
amd64的源   deb [by-hash=force] http://packages.deepin.com/deepin stable main contrib non-free
deb https://mirrors.aliyun.com/debian stable main contrib non-free
Y4J9R3LR

试过,但是不太好用的源
deb [by-hash=force] https://professional-packages.chinauos.com/desktop-professional eagle main contrib non-free
#deb-src [by-hash=force] https://professional-packages.chinauos.com/desktop-professional eagle main contrib non-free
#deb [by-hash=force] http://packages.deepin.com/deepin stable main contrib non-free
#deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse 
#deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
#deb [by-hash=force] https://mirrors.tsinghua.edu.cn/deepin panda main contrib non-free
deb https://mirrors.aliyun.com/debian stable main contrib non-free

deb [trusted=yes] https://mirrors.huaweicloud.com/deepin stable main contrib non-free


apt-get update --fix -missing

uos解决没有ssh的问题
sudo apt-get  autoremove  openssh-client
sudo apt-get install openssh-client openssh-server
sudo /etc/init.d/ssh start
systemctl status ssh
设置开机自启动
systemctl enable ssh

接下来就可以使用xshell连接,粘贴浏览器上的内容,做更多操作了。早早的换阿里源,没有数字秘钥照样没用。
有些linux在安装的时候就提示设root的密码,有些没有提示,这个时候想要切root,提示输入密码是怎样都不会正确的,
所以可以sudo passwd root,先设置root的mim,然后再切root。

sudo nano /etc/ssh/sshd_config
LoginGraceTime 2m
PermitRootLogin yes
StrictModes yes

vim /etc/apt/sources.list


具体就是修改/etc/apt/apt.conf.d下的70debconf文件,在里面加上:Acquire::AllowInsecureRepositories “true”;
Acquire::AllowInsecureRepositories "true";
Acquire::AllowDowngradeToInsecureRepositories "1";



**************************************************************************************************************************
//nginx配置和安装
nginx reload命令_nginx:Failed to start nginx.service:unit not found

解决方法:
1. 在/root/etc/init.d/目录下新建文件,文件名为nginx
  或者用命令在根目录下执行:# vim /etc/init.d/nginx (注意vim旁边有一个空格)
2. 插入以下代码

#!/bin/sh
# nginx - this script starts and stops the nginx daemin
#
# chkconfig:   - 85 15
 
# description:  Nginx is an HTTP(S) server, HTTP(S) reverse 
#               proxy and IMAP/POP3 proxy server
 
# processname: nginx
# config:      /usr/local/nginx/conf/nginx.conf
# pidfile:     /usr/local/nginx/logs/nginx.pid
 
# Source function library.
 
. /etc/rc.d/init.d/functions
 
# Source networking configuration.
 
. /etc/sysconfig/network
 
# Check that networking is up.
 
[ "$NETWORKING" = "no" ] && exit 0
 
nginx="/usr/local/nginx/sbin/nginx"
 
prog=$(basename $nginx)
 
NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"
 
lockfile=/var/lock/subsys/nginx
 
start() {
 
    [ -x $nginx ] || exit 5
 
    [ -f $NGINX_CONF_FILE ] || exit 6
 
    echo -n $"Starting $prog: "
 
    daemon $nginx -c $NGINX_CONF_FILE
 
    retval=$?
 
    echo
 
    [ $retval -eq 0 ] && touch $lockfile
 
    return $retval
 
}
 
stop() {
 
    echo -n $"Stopping $prog: "
 
    killproc $prog -QUIT
 
    retval=$?
 
    echo
 
    [ $retval -eq 0 ] && rm -f $lockfile
 
    return $retval
 
}
 
restart() {
 
    configtest || return $?
 
    stop
 
    start
 
}
 
reload() {
 
    configtest || return $?
 
    echo -n $"Reloading $prog: "
 
    killproc $nginx -HUP
 
    RETVAL=$?
 
    echo
 
}
 
force_reload() {
 
    restart
 
}
 
configtest() {
 
  $nginx -t -c $NGINX_CONF_FILE
 
}
 
rh_status() {
 
    status $prog
 
}
 
rh_status_q() {
 
    rh_status >/dev/null 2>&1
 
}
 
case "$1" in
 
    start)
 
        rh_status_q && exit 0
        $1
        ;;
 
    stop)
 
        rh_status_q || exit 0
        $1
        ;;
 
    restart|configtest)
        $1
        ;;
 
    reload)
        rh_status_q || exit 7
        $1
        ;;
 
    force-reload)
        force_reload
        ;;
    status)
        rh_status
        ;;
 
    condrestart|try-restart)
 
        rh_status_q || exit 0
            ;;
 
    *)
 
        echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
        exit 2
 
esac

3. 用命令进入此目录

cd /etc/init.d

4. 依此执行以下命令

chmod 755 /etc/init.d/nginx

chkconfig --add nginx (注意add前面是两个短横线-)

5. 开启nginx

service nginx start

centos安装nginx后开启防火墙端口

sudo firewall-cmd --permanent --zone=public --add-service=http
 
sudo firewall-cmd --permanent --zone=public --add-service=https
 
sudo firewall-cmd --reload

cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo

cat > /etc/docker/daemon.json << EOF
{
"registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"]
}
EOF

cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

yum install -y kubelet-1.17.0 kubeadm-1.17.0 kubectl-1.17.0

kubeadm init \
--apiserver-advertise-address=172.16.0.108 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.17.0 \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16

./keadm init --advertise-address="172.16.0.104" --kubeedge-version=1.4.0

./keadm join --cloudcore-ipport=172.16.0.104:10000 --edgenode-name=edge-node --kubeedge-version=1.4.0 --token=9ef727c62cd60d325a250f10a4b0d54bb6b509007a6d15f11cd36525567dbe1a.eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MjA0NjAwOTZ9.tZgB7VtAfmFzwV30nEaTSRPxuQV-nJKq0rIfYYZXfBI

./keadm reset



**************************************************************************************************************************
//田鹏新

烧录后:
        默认用户名pi、
        默认密码raspberry
        默认开启用户pi的ssh
       
        默认不开启root的ssh
        默认不支持VNC

        sudo su 无密码切换到root
        输入sudo raspi-config进入树莓派设置界面
        选interfacing Options
        选VNC

        设置连接WIFI
        sdjty    1234567890
        设置树莓派pi   raspberry
                        root 1234567890
        
        修改root密码
        sudo passwd root
        切换到root
        su root
        修改pi密码
        sudo passwd pi
        切换到pi
        su pi

        改完密码后多切换几次用户名,看看修改有没有生效。

1.默认允许以用户pi(默认密码raspberry)进行登录
2.以root用户登录,需要以用户pi登录,修改root密码,并开启root的ssh远程登录权限,具体步骤如下:
2.1.以用户pi登录
2.2.修改root登录密码,输入下面的命令,会提示输入新的密码
sudo passwd root
2.3.解锁root用户
sudo passwd -u root
2.4.修改ssh的配置文件/etc/ssh/sshd_config,将配置项PermitRootLoginwithout-password或者#PermitRootLogin prohibit-password
修改为PermitRootLogin yes,重启系统之后就可以登录

sudo nano /etc/ssh/sshd_config
LoginGraceTime 2m
PermitRootLogin yes
StrictModes yes


        开启root的ssh的权利
        用nano打开/etc/ssh/sshd_config
        将PermitRootLoginwithout-password修改为PermitRootLogin yes
        别用原生的vi,太难用了,除非卸载后更新vi。nano还支持不同颜色,为什么不用。
        甚至于你可以将PermitEmptyPasswords no改成PermitEmptyPasswords yes,即允许无密码,自由从pi切换到root。
        树莓派换源,要注意你使用的树莓派是buster还是stretch

        # 编辑 `/etc/apt/sources.list` 文件,删除原文件所有内容,用以下内容取代:
        deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib rpi
        deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib rpi

        # 编辑 `/etc/apt/sources.list.d/raspi.list` 文件,删除原文件所有内容,用以下内容取代:
        deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main ui
        换源之后apt-get update,然后apt-get upgrade

       getconf LONG_BIT        # 查看系统位数
       uname -a            # kernel 版本
       /opt/vc/bin/vcgencmd  version   # firmware版本
       strings /boot/start.elf  |  grep VC_BUILD_ID    # firmware版本
       cat /proc/version       # kernel
       cat /etc/os-release     # OS版本资讯
       cat /etc/issue          # Linux distro 版本
       cat /etc/debian_version     # Debian版本编号

      查看内存使用情况,free

      同步时间,树莓派一旦断电,就会时间不准,每次开机都得矫正一下。

      运行命令启用NTP
      sudo timedatectl set-ntp true
      date查看一下
      修改时区
      sudo dpkg-reconfigure tzdata
      选择 Asia亚洲,
      选择shanghai,中国有四个时区上榜,重庆、香港、台北、上海、没找到北京。


      安装docker
      sudo curl -sSL https://get.docker.com | sh

      禁用交换空间
       sudo dphys-swapfile swapoff
       sudo dphys-swapfile uninstall
       sudo update-rc.d dphys-swapfile remove

       k8s node节点重新加入集群失败问题解决;k8snode节点安装失败,或者master节点坏掉,重新部署完毕master节点后,node节点无法加入集群,总之就是node节点已经装过一次,现在有残留,想要重新装一次。
解决方法,出现这种问题主要原因是之前kubeadm init初始化过,所以一些配置文件及服务均已存在,重新执行
kubeadm join时必然会导致冲突,解决方法如下:
重新初始化节点配置,转到/usr/local/keadm-v1.4.0-linux-arm/keadm#执行  ./kubeadm reset
然后重新加入集群,如果是node节点,就用kubeadm join --token xxxxx master_ip:6443 --discovery-token-ca-cert-hash sha256:xxxx  ,如果token失效,到主节点执行:kubeadm token create重新生成。

如果是dege节点丢失了,那么也是这样的重置一下,重新加入。
------------------------------------------------------------------------------------------
编辑hosts
nano /etc/hosts
172.16.0.103 edge-node
172.16.0.104 master

# GitHub Start
185.199.109.133 raw.githubusercontent.com
185.199.108.133 raw.githubusercontent.com
185.199.111.133 raw.githubusercontent.com
185.199.110.133 raw.githubusercontent.com
# GitHub End
-------------------------------------------------------------------------------------------------------

./keadm init --advertise-address="172.16.0.104" --kubeedge-version=1.4.0

./keadm join --cloudcore-ipport=172.16.0.104:10000 --edgenode-name=edge-node --kubeedge-version=1.4.0 --token=9d7fd2b69e36697d64a7e1af53d0bc22da768c8a1471fc4ad312548ff2f69c53.eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MjA4MDkxMzJ9.xJBNI__mxbzSxzQpZCYqTd4YdKkFTI1bmWijPo6PqLg



-------------------------------------------------------------------------
部署golang
wget https://golang.google.cn/dl/go1.15.3.linux-amd64.tar.gz
tar -zxvf go1.15.3.linux-amd64.tar.gz -C /usr/local

vi /etc/profile
# golang env
export GOROOT=/usr/local/go
export GOPATH=/data/gopath
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

source /etc/profile
mkdir -p /data/gopath && cd /data/gopath
mkdir -p src pkg bin
------------------------------------------------------------------------


export ftp_proxy=http://172.16.0.106:7890
export http_proxy=http://172.16.0.106:7890
export https_proxy=http://172.16.0.106:7890
export all_proxy=http://172.16.0.106:7890
export no_proxy=localhost,127.0.0.1,.baidu.net

curl -I www.google.com

---------------------------------------------------------------------------------------
docker镜像源查看

https://hub.docker.com

------------------------------------------------------------------------------------------
cgroup的问题这样改,加两句话,位置比较重要,不用全盘复制。
enable in /boot/cmdline.txt by including : cgroup_memory=1 cgroup_enable=memory. Like this:
console=tty1 root=PARTUUID=9f7945f8-02 rootfstype=ext4 elevator=deadline fsck.repair=yes cgroup_memory=1 cgroup_enable=memory rootwait quiet splash plymouth.ignore-serial-consoles

改为以后用下面的查看一下
cat /proc/cgroups

       

        树莓派暴力断电关机会引发下次连不上wifi的问题,重新添加一下ssh和wpa_supplicant文件

https://mirror.tuna.tsinghua.edu.cn/help/centos/

------------------------------------
node节点get nodes出现:The connection to the server localhost:8080 was refused - did you specify the right host or port?
将master节点中/etc/kubernetes中的admin.conf复制到node节点的相同目录下,之后执行:export KUBECONFIG=/etc/kubernetes/admin.conf

-----------------------------------------------------------------------------
apt-get安装kubectl等找不到
root@ubuntu:~# cat /etc/apt/sources.list.d/kubernetes.list 
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
root@ubuntu:~# 
root@ubuntu:~# curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
root@ubuntu:~# apt-get update

root@ubuntu:~# apt-cache madison 'kubeadm' | grep 1.16.2 | head -1 | awk '{$1=$1};1' | cut -d' ' -f 3
1.16.2-00
root@ubuntu:~# apt-get install -y --allow-change-held-packages --allow-downgrades kubeadm=1.17.0-00 kubelet=1.17.0-00 kubectl=1.17.0-00
----------------------------------------------------------------
#查看k8s-master表示不运行pod
[root@k8s-master ~]# kubectl describe node k8s-master |grep Taints
Taints: node-role.kubernetes.io/master:NoSchedule
#查看k8s-master表示运行pod
[root@k8s-master ~]# kubectl describe node k8s-master |grep Taints
Taints: <none>
#让 master节点参与POD负载的命令为
kubectl taint nodes k8s-master node-role.kubernetes.io/master-
#让 master节点恢复不参与POD负载的命令为 
kubectl taint nodes k8s-master node-role.kubernetes.io/master=:NoSchedule
------------------------------------------------------------------------


**************************************************************************************************************************
//kubelet配置和安装
centos系统的master及node下操作
          关闭防火墙:
                  systemctl stop firewalld
                  systemctl disable firewalld
          关闭selinux:
	sed -i 's/enforcing/disabled/' /etc/selinux/config # 永久
	setenforce 0 # 临时
          关闭swap:
	swapoff -a # 临时
	vim /etc/fstab # 永久     注释关于swap的那一行,在最后一行。
          修改主机名hostname:
	hostnamectl set-hostname <hostname>
          在master添加hosts:
                  cat >> /etc/hosts << EOF
	192.168.31.61 k8s-master
	192.168.31.62 k8s-node1
	192.168.31.63 k8s-node2
	EOF
          将桥接的 IPv4 流量传递到 iptables 的链:
	cat > /etc/sysctl.d/k8s.conf << EOF
	net.bridge.bridge-nf-call-ip6tables = 1
	net.bridge.bridge-nf-call-iptables = 1
	EOF
	sysctl --system # 生效
          时间同步:
	yum install ntpdate -y
	ntpdate time.windows.com
	date
          安装docker,kubernetes默认CRI(容器运行时)为docker:
	wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
	yum -y install docker-ce-18.06.1.ce-3.el7
	docker --version
          添加阿里云YUM软件源,
	设置仓库地址:
	        cat > /etc/docker/daemon.json << EOF
	       {
	         "registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"]
	       } EOF
	添加 yum 源:
	       cat > /etc/yum.repos.d/kubernetes.repo << EOF
	       [kubernetes]
	       name=Kubernetes
	       baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
	       enabled=1
	       gpgcheck=0
	       repo_gpgcheck=0
	      gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
	      https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
	      EOF
           安装 kubeadm,kubelet和 kubectl:
	yum install -y kubelet-1.17.0 kubeadm-1.17.0 kubectl-1.17.0
	systemctl enable kubelet

从下面开始centos系统的master和node就不一样了。
centos系统的master:
           部署kubernetes master: 假如master的IP是172.16.0.104
	kubeadm init \
	--apiserver-advertise-address=192.168.31.61 \
	--image-repository registry.aliyuncs.com/google_containers \
	--kubernetes-version v1.17.0 \
	--service-cidr=10.96.0.0/12 \
	--pod-network-cidr=10.244.0.0/16
	由于默认拉取镜像地址 k8s.gcr.io 国内无法访问,这里指定阿里云镜像仓库地址。
          使用kubectl工具:
	mkdir -p $HOME/.kube
	sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
	sudo chown $(id -u):$(id -g) $HOME/.kube/config
          安装pod网络插件(CNI)
	kubectl apply -f kube-flannel.yaml
	该yaml文件是通用的,可以去github下载,或者在apply -f执行指令中加入github下载地址。
          查看master状态
	kubectl get nodes
          获取token,为node加入做准备.
                 kubeadm token create --print-join-command

centos系统的node
	kubeadm join 192.168.31.61:6443  --token n2vb26.1nzx4628932e7r8n     --discovery-token-ca-cert-hash sha256:74cac4b44cbb7ae95d57ce86ea6602bac9d1b2fade82e224b929f1ce6f918196 
         其中--token n2vb26.1nzx4628932e7r8n     --discovery-token-ca-cert-hash sha256:74cac4b44cbb7ae95d57ce86ea6602bac9d1b2fade82e224b929f1ce6f918196 是在master里面获取的token和hash。


centos系统的cloudcore云
          将执行脚本keadm-v1.4.0-linux-amd64.tar.gz传输到/usr/local下,解压,进入,再进入keadm,然后
	./keadm init --advertise-address="172.16.0.104" --kubeedge-version=1.4.0
          假如172.06.0.104是cloudcore的IP
          	./keadm gettoken获取token

raspberry系统的edgecore
          将执行脚本keadm-v1.4.0-linux-arm.tar.gz传输到/usr/local下,解压,进入,再进入keadm,然后
	./keadm join --cloudcore-ipport=172.16.0.104:10000 --edgenode-name=edge-node --kubeedge-version=1.4.0 --token=9d7fd2b69e36697d64a7e1af53d0bc22da768c8a1471fc4ad312548ff2f69c53.eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2MjA4MDkxMzJ9.xJBNI__mxbzSxzQpZCYqTd4YdKkFTI1bmWijPo6PqLg
	token是从cloudcore获取的。


	




你可能感兴趣的:(匿名函数,linux,ssh,centos)