Linux


服务器

<p>[TOC]</p> <h1>安装 ifconfig 命令</h1> <pre><code>yum install net-tools</code></pre> <h1>配置静态IP</h1> <pre><code>vi /etc/sysconfig/network-scripts/ifcfg-ens33</code></pre> <p>将<code>BOOTPROTO=&amp;quot;dhcp&amp;quot;</code>修改为<code>BOOTPROTO=&amp;quot;static&amp;quot;</code> 在最后加入以下配置</p> <pre><code>ZONE=public IPADDR=&amp;quot;192.168.92.200&amp;quot; NETMASK=&amp;quot;255.255.255.0&amp;quot; GATEWAY=&amp;quot;192.168.92.2&amp;quot; DNS1=&amp;quot;192.168.92.2&amp;quot;</code></pre> <p>重启网络</p> <pre><code>systemctl restart network</code></pre> <h1>安装docker</h1> <p>官方:<a href="https://docs.docker.com/engine/install/centos/">https://docs.docker.com/engine/install/centos/</a></p> <pre><code># 卸载旧版本 yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine # step 1: 安装必要的一些系统工具 yum install -y yum-utils device-mapper-persistent-data lvm2 # Step 2: 添加软件源信息 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # Step 3: 更新并安装 Docker-CE yum makecache fast yum -y install docker-ce # Step 4: 开启Docker服务 systemctl start docker 或 service docker start # Step 5:安装核验 docker version # Step 6: 设置开机启动 chkconfig docker on</code></pre> <p>配置镜像加速器</p> <pre><code>mkdir -p /etc/docker tee /etc/docker/daemon.json &amp;lt;&amp;lt;-'EOF' { &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://ux2igo2v.mirror.aliyuncs.com&amp;quot;] } EOF systemctl daemon-reload systemctl restart docker</code></pre> <h1>安装 docker-compose</h1> <pre><code>curl -SL https://mirror.ghproxy.com/https://github.com/docker/compose/releases/download/v2.24.7/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose docker-compose --version</code></pre> <h1>挂载硬盘</h1> <pre><code>[root@centos-xylw ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 40G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 39G 0 part ├─centos-root 253:0 0 35.1G 0 lvm / └─centos-swap 253:1 0 3.9G 0 lvm [SWAP] sdb 8:16 0 500G 0 disk sr0 11:0 1 4.4G 0 rom # ================================================================== [root@centos-xylw ~]# fdisk /dev/sdb 欢迎使用 fdisk (util-linux 2.23.2)。 更改将停留在内存中,直到您决定将更改写入磁盘。 使用写入命令前请三思。 Device does not contain a recognized partition table 使用磁盘标识符 0xc318588e 创建新的 DOS 磁盘标签。 命令(输入 m 获取帮助):n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p 分区号 (1-4,默认 1): 起始 扇区 (2048-1048575999,默认为 2048): 将使用默认值 2048 Last 扇区, +扇区 or +size{K,M,G} (2048-1048575999,默认为 1048575999): 将使用默认值 1048575999 分区 1 已设置为 Linux 类型,大小设为 500 GiB 命令(输入 m 获取帮助):w The partition table has been altered! Calling ioctl() to re-read partition table. 正在同步磁盘。 # =============================================================== [root@centos-xylw ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 40G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 39G 0 part ├─centos-root 253:0 0 35.1G 0 lvm / └─centos-swap 253:1 0 3.9G 0 lvm [SWAP] sdb 8:16 0 500G 0 disk └─sdb1 8:17 0 500G 0 part sr0 11:0 1 4.4G 0 rom # ============================================================== [root@centos-xylw ~]# mkfs.ext4 /dev/sdb1 mke2fs 1.42.9 (28-Dec-2013) 文件系统标签= OS type: Linux 块大小=4096 (log=2) 分块大小=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 32768000 inodes, 131071744 blocks 6553587 blocks (5.00%) reserved for the super user 第一个数据块=0 Maximum filesystem blocks=2279604224 4000 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 102400000 Allocating group tables: 完成 正在写入inode表: 完成 Creating journal (32768 blocks): 完成 Writing superblocks and filesystem accounting information: 完成 # ============================================================================== [root@centos-xylw ~]# mkdir /d [root@centos-xylw ~]# mount /dev/sdb1 /d [root@centos-xylw ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点 devtmpfs 1.9G 0 1.9G 0% /dev tmpfs 1.9G 0 1.9G 0% /dev/shm tmpfs 1.9G 12M 1.9G 1% /run tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup /dev/mapper/centos-root 36G 1.8G 34G 6% / /dev/sda1 1014M 151M 864M 15% /boot tmpfs 378M 0 378M 0% /run/user/0 /dev/sdb1 493G 73M 467G 1% /d [root@centos-xylw ~]# blkid /dev/sdb1 /dev/sdb1: UUID=&amp;quot;f6b5bda7-b770-4ffa-bb87-03f0df044e46&amp;quot; TYPE=&amp;quot;ext4&amp;quot; # 开机启动,修改 /etc/fstab 增加一行 # UUID=f6b5bda7-b770-4ffa-bb87-03f0df044e46 /d ext4 defaults 0 0 [root@centos-xylw ~]# vi /etc/fstab </code></pre> <h1>安装青龙面板</h1> <pre><code>#v 2.10.13 docker run -dit \ -v /d/ql/config:/ql/config \ -v /d/ql/log:/ql/log \ -v /d/ql/scripts:/ql/scripts \ -v /d/ql/db:/ql/db \ -v /d/ql/data:/ql/data \ -p 57001:5700 \ --name qinglong \ --hostname qinglong \ --restart always \ whyour/qinglong:latest # 开放端口 firewall-cmd --zone=public --add-port=57001/tcp --permanent &amp;amp;&amp;amp; firewall-cmd --reload &amp;amp;&amp;amp; firewall-cmd --list-ports</code></pre> <h1>安装nextcloud</h1> <pre><code>docker run -d -v /d/nextcloud:/var/www/html --name nextcloud -p 8060:80 nextcloud firewall-cmd --zone=public --add-port=8060/tcp --permanent &amp;amp;&amp;amp; firewall-cmd --reload &amp;amp;&amp;amp; firewall-cmd --list-ports</code></pre> <h1>从源码安装 nginx</h1> <pre><code># 切换到 /usr/local 目录下 cd /usr/local # 下载nginx源码 wget http://nginx.org/download/nginx-1.24.0.tar.gz # 解压 tar -zxvf nginx-1.24.0.tar.gz # 进入nginx源码目录 cd nginx-1.24.0 # 安装依赖 yum install -y gcc-c++ yum install -y pcre yum install -y pcre-devel yum install -y zlib yum install -y zlib-devel yum install -y openssl yum install -y openssl-devel # 执行 ./configure ./configure --with-http_v2_module --with-stream --with-stream_ssl_module --with-stream_ssl_preread_module --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-http_gunzip_module --with-http_sub_module --with-http_flv_module --with-http_addition_module --with-http_realip_module --with-http_mp4_module --with-ld-opt=-Wl,-E --with-cc-opt=-Wno-error --with-http_dav_module --with-http_realip_module # 编译安装 make &amp;amp;&amp;amp; make install # 删除安装包 rm -rdf nginx-1.24.0 rm nginx-1.24.0.tar.gz</code></pre> <p>配置nginx开机启动</p> <pre><code>vi /lib/systemd/system/nginx.service</code></pre> <p>填入以下内容:</p> <pre><code>[Unit] Description=nginx After=network.target [Service] Type=forking ExecStart=/usr/local/nginx/sbin/nginx ExecReload=/usr/local/nginx/sbin/nginx reload ExecStop=/usr/local/nginx/sbin/nginx quit PrivateTmp=true [Install] WantedBy=multi-user.target</code></pre> <p>设置开机启动</p> <pre><code># 修改权限 chmod 777 /lib/systemd/system/nginx.service systemctl enable nginx.service</code></pre> <p>其他命令</p> <pre><code># 启动nginx systemctl start nginx.service # 结束nginx systemctl stop nginx.service # 重启nginx systemctl restart nginx.service</code></pre> <p>设置环境变量</p> <pre><code>vi /etc/profile</code></pre> <p>在最后增加一行</p> <pre><code>export PATH=&amp;quot;/usr/local/nginx/sbin/:$PATH&amp;quot;</code></pre> <p>使配置生效</p> <pre><code>source /etc/profile nginx -v</code></pre> <h1>从仓库安装 nginx</h1> <pre><code>sudo yum install -y epel-release sudo yum -y update sudo yum install -y nginx</code></pre> <p>安装成功后,默认的网站目录为:<code>/usr/share/nginx/html</code> 默认的配置文件为:<code>/etc/nginx/nginx.conf</code> 自定义配置文件目录为:<code>/etc/nginx/conf.d/</code></p> <p>打开防火墙</p> <pre><code>sudo firewall-cmd --permanent --zone=public --add-service=http sudo firewall-cmd --permanent --zone=public --add-service=https sudo firewall-cmd --reload</code></pre> <p>nginx操作</p> <pre><code>#启动 Nginx systemctl start nginx #停止 Nginx systemctl stop nginx #重启 Nginx systemctl restart nginx #查看 Nginx 状态 systemctl status nginx #启用开机启动 Nginx systemctl enable nginx #禁用开机启动 Nginx systemctl disable nginx</code></pre> <h1>安装minio</h1> <pre><code>docker run -d --name minio -p 9000:9000 -p 9001:9001 -e &amp;quot;MINIO_ROOT_USER=admin&amp;quot; -e &amp;quot;MINIO_ROOT_PASSWORD=minioadmin123456&amp;quot; -v /v/minio:/data minio/minio server /data --console-address &amp;quot;:9001&amp;quot;</code></pre> <h1>安装rabbitmq</h1> <pre><code>docker run -d --name rabbitmq -p 15672:15672 -p 5672:5672 rabbitmq # 进入容器 docker exec -it rabbitmq bash # 启用web管理 rabbitmq-plugins enable rabbitmq_management</code></pre> <h1>安装mysql</h1> <pre><code>docker pull mysql:8.0.25 mkdir -p /v/mysql/conf mkdir -p /v/mysql/data mkdir -p /v/mysql/mysql-files cd /v/mysql/conf touch my.cnf vi my.cnf</code></pre> <p>写入以下内容</p> <pre><code>[mysql] #设置mysql客户端默认字符集 default-character-set=utf8mb4 [mysqld] # 数据库忽略大小写 lower_case_table_names = 1 #服务端使用的字符集默认为utf8mb4 character-set-server=utf8mb4 collation_server = utf8mb4_general_ci #创建新表时将使用的默认存储引擎 default-storage-engine=INNODB</code></pre> <p>启动</p> <pre><code>docker run -d -p 3306:3306 \ --restart=always \ --privileged=true \ -v /v/mysql/log:/var/log/mysql \ -v /v/mysql/data:/var/lib/mysql \ -v /v/mysql/conf/my.cnf:/etc/mysql/my.cnf \ -v /v/mysql/mysql-files:/var/lib/mysql-files \ -e MYSQL_ROOT_PASSWORD=Xylw258963 \ -e TZ=Asia/Shanghai \ --name mysql mysql:8.0.25</code></pre> <p>查看日志</p> <pre><code>docker logs -f mysql</code></pre> <p>进入容器</p> <pre><code>docker exec -it mysql mysql -uroot -p</code></pre> <pre><code>use mysql; select host, user, plugin, authentication_string, password_expired from user; update user set host='%' where user='root'; ALTER user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; FLUSH PRIVILEGES; exit</code></pre> <h1>安装 mariadb</h1> <pre><code>mkdir -p /v/mariadb/data docker run --name mariadb -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -v /v/mariadb/data:/var/lib/mysql -d mariadb:10.5.10</code></pre> <h1>安装 mongoDb</h1> <p>安装</p> <pre><code>mkdir -p /v/mongodb/data docker run -itd --name mongo -v /v/mongodb/data:/data/db -p 27017:27017 mongo --auth</code></pre> <p>登录mongo容器,并进入到【admin】数据库</p> <pre><code>docker exec -it mongo mongo admin</code></pre> <p>创建一个用户 root,mongo 默认没有用户</p> <pre><code>db.createUser({ user:'root',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},'readWriteAnyDatabase']});</code></pre> <h1>安装redis</h1> <pre><code>docker run --restart=always -p 6379:6379 --name myredis -d redis:latest --requirepass 123456</code></pre> <h1>安装 java</h1> <pre><code># alpine镜像,安装完成后145MB。缺少glibc,无法运行sqlite docker pull daocloud.io/library/java:openjdk-8-alpine # 完整镜像,安装完成后816MB docker pull daocloud.io/library/java:openjdk-8u40-jdk</code></pre> <p>&gt; alpine镜像缺少glibc,无法运行sqlite [<a href="https://github.com/xerial/sqlite-jdbc/issues/197](https://github.com/xerial/sqlite-jdbc/issues/197">https://github.com/xerial/sqlite-jdbc/issues/197](https://github.com/xerial/sqlite-jdbc/issues/197</a> &quot;<a href="https://github.com/xerial/sqlite-jdbc/issues/197&quot">https://github.com/xerial/sqlite-jdbc/issues/197&quot</a>;)</p> <h2>部署 bill</h2> <pre><code># 新建目录 /v/java/bill,/v/java/bill/tmp docker run -itd --name bill -p 11241:11241 -v /v/java/bill:/opt daocloud.io/library/java:openjdk-8u40-jdk sh -c &amp;quot;cd /opt &amp;amp;&amp;amp; java -Dfile.encoding=utf-8 -Djava.io.tmpdir=/opt/tmp -server -XX:+TieredCompilation -Xms64m -Xmx256m -Xss1m -XX:NewRatio=4 -Duser.timezone=GMT+08 -Duser.dir=/opt -jar /opt/bill-1.0.jar&amp;quot; # 进入容器 docker exec -it bill bash</code></pre> <h2>git</h2> <p>安装git及其所有依赖</p> <pre><code>yum install git -y</code></pre> <p>配置git</p> <pre><code>git config --global user.name &amp;quot;xylw&amp;quot; git config --global user.email &amp;quot;xylw@qq.com&amp;quot;</code></pre> <p>保存密码</p> <p><strong>https方式(明文存储,不推荐)</strong></p> <p>进入到用户目录<code>cd ~</code>执行命令<code>git config --global credential.helper store</code>,此时会在文件<code>.gitconfig</code>中存在以下配置</p> <pre><code>[credential]   helper = store</code></pre> <p>此时执行一次任何需要输入账号密码的git操作,就可以保存密码。 密码会以明文的形式存在于<code>~/.git-credentials</code>文件中</p> <p><strong>SSH方式</strong></p> <pre><code>ssh-keygen -t rsa -C &amp;quot;xylw@qq.com&amp;quot; # 输入文件名 默认:/root/.ssh/id_rsa,我这里输入:/root/.ssh/teambitionGitRsa # 输入密码,可直接留空回车 # 确认密码,可直接留空回车 # 查看公钥 cat ~/.ssh/teambitionGitRsa.pub # 编辑 ~/.ssh/config 文件指定使用的密钥 vi ~/.ssh/config # 输入以下内容 HostName codeup.teambition.com PreferredAuthentications publickey IdentityFile ~/.ssh/teambitionGitRsa # 把公钥复制到git平台上 ssh -T git@codeup.teambition.com </code></pre> <h2>maven</h2> <p>进入官网,寻找自己需要的版本 [<a href="https://archive.apache.org/dist/maven/maven-3/](https://archive.apache.org/dist/maven/maven-3/">https://archive.apache.org/dist/maven/maven-3/](https://archive.apache.org/dist/maven/maven-3/</a> &quot;<a href="https://archive.apache.org/dist/maven/maven-3/&quot">https://archive.apache.org/dist/maven/maven-3/&quot</a>;)</p> <p>新建文件夹<code>mkdir -p /app/maven</code>并进入该文件夹 下载安装:<code>wget https://archive.apache.org/dist/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz</code> 解压:<code>tar -zxvf apache-maven-3.6.3-bin.tar.gz</code> 编辑环境变量文件<code>vi /etc/profile</code>,在最后加入以下内容</p> <pre><code>export MAVEN_HOME=/app/maven/apache-maven-3.6.3 export PATH=${PATH}:${MAVEN_HOME}/bin</code></pre> <p>执行<code>source /etc/profile</code>使生效 <code>mvn -version</code>验证 新建仓库文件夹<code>mkdir -p /app/maven/repo</code> 编辑maven配置文件<code>vi /app/maven/apache-maven-3.6.3/conf/settings.xml</code>,命令<code>:%d</code>清空内容,以下为全部配置内容</p> <pre><code>&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt; &amp;lt;settings xmlns=&amp;quot;http://maven.apache.org/SETTINGS/1.0.0&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xsi:schemaLocation=&amp;quot;http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd&amp;quot;&amp;gt; &amp;lt;localRepository&amp;gt;/app/maven/repo&amp;lt;/localRepository&amp;gt; &amp;lt;pluginGroups&amp;gt; &amp;lt;/pluginGroups&amp;gt; &amp;lt;proxies&amp;gt; &amp;lt;/proxies&amp;gt; &amp;lt;servers&amp;gt; &amp;lt;/servers&amp;gt; &amp;lt;mirrors&amp;gt; &amp;lt;mirror&amp;gt; &amp;lt;id&amp;gt;huaweicloud&amp;lt;/id&amp;gt; &amp;lt;mirrorOf&amp;gt;*,!com.e-iceblue&amp;lt;/mirrorOf&amp;gt; &amp;lt;url&amp;gt;http://mirrors.huaweicloud.com/repository/maven/&amp;lt;/url&amp;gt; &amp;lt;/mirror&amp;gt; &amp;lt;/mirrors&amp;gt; &amp;lt;profiles&amp;gt; &amp;lt;/profiles&amp;gt; &amp;lt;/settings&amp;gt;</code></pre> <h2>自动部署</h2> <pre><code>#!/usr/bin/env bash time1=$(date &amp;quot;+%Y-%m-%d %H:%M:%S&amp;quot;) CURR_DIR=`pwd` DEPLOY_DIR=$(dirname &amp;quot;$(readlink -f &amp;quot;$0&amp;quot;)&amp;quot;) CODE_DIR=/app/code/portal-backend ARTIFACT_ID=portal-api cd $CODE_DIR echo `date +%H:%M:%S`&amp;quot; 获取代码&amp;quot; git pull cd $DEPLOY_DIR echo `date +%H:%M:%S`&amp;quot; 开始打包……&amp;quot; sleep 5 mvn clean -f $CODE_DIR/pom.xml -U -DskipTests -Dmaven.javadoc.skip=true mvn clean install -f $CODE_DIR/pom.xml -U -DskipTests -Dmaven.javadoc.skip=true echo `date +%H:%M:%S`&amp;quot; 打包完成&amp;quot; FILE_NAME=$DEPLOY_DIR/$ARTIFACT_ID.jar DATENOW=$(date +%Y%m%d%H%M%S) echo `date +%H:%M:%S`&amp;quot; 备份文件:&amp;quot;$FILE_NAME$DATENOW&amp;quot;.bak&amp;quot; \cp -p -f $FILE_NAME $FILE_NAME$DATENOW&amp;quot;.bak&amp;quot; echo `date +%H:%M:%S`&amp;quot; 更新文件:&amp;quot;$FILE_NAME \cp -p -f $CODE_DIR/$ARTIFACT_ID/target/$ARTIFACT_ID.jar $FILE_NAME echo `date +%H:%M:%S`&amp;quot; 重启项目&amp;quot; ./start.sh restart time2=$(date &amp;quot;+%Y-%m-%d %H:%M:%S&amp;quot;) echo `date +%H:%M:%S`&amp;quot; 部署完成,耗时:&amp;quot;$(($(date +%s -d &amp;quot;${time2}&amp;quot;)-$(date +%s -d &amp;quot;${time1}&amp;quot;)))&amp;quot;秒&amp;quot; cd $CURR_DIR</code></pre>

页面列表

ITEM_HTML