欢迎光临
我们一直在努力

Linux技巧

Linux系统多线、三线、双线路由配置出口

阅读(515)评论(0)

问题概述

我们使用一台机器,接入多根网线,并配置多个运营商网络,需要指定相关出口

操作步骤

1、在末尾加入三张路由表

vi /etc/iprou***/rt_table

  • 252 cucc
  • 251 cmcc
  • 250 tel

2、执行脚本设置路由(自行替换IP和网卡接口)

电信 IP地址:58.218.33.177 网关:58.218.33.1 网卡em2
移动 IP地址:36.149.88.37 网关:36.149.88.1 网卡em3
联通 IP地址:157.0.217.180 网关:157.0.217.1 网卡em4

把下面内容粘贴到:vi /etc/rc.local(在exit之前,保存)

  • #电信
  • ip route flush table tel
  • ip route add default via 58.218.33.1 dev em2 src 58.218.33.177 table tel
  • ip rule add from 58.218.33.177 table tel
  • #移动
  • ip route flush table cmcc
  • ip route add default via 36.149.88.1 dev em3 src 36.149.88.37 table cmcc
  • ip rule add from 36.149.88.37 table cmcc
  • #联通
  • ip route flush table cuc
  • ip route add default via 157.0.217.1 dev em4 src 157.0.217.180 table cucc
  • ip rule add from 157.0.217.180 table cucc

3、执行以下步骤

  • chmod +x /etc/rc.d/rc.local
  • systemctl enable rc-local.service
  • systemctl start rc-local.service

4、reboot 重启验证

Chrome Remote Desktop 远程控制 Ubuntu 服务器

阅读(510)评论(0)

准备工作

众所周知,Chrome Remote Desktop 是一款十分出色的完全免费远程控制软件。其易用性和功能的强大性,以及连接的稳定性都给这款软件加分不少,唯一的缺点可能就是国内无法使用了,需要开梯子才可使用。

首先,先准备一个需要远程控制的VPS,要求 Debian或者 Ubuntu系统。还需要另一个控制端,手机电脑均可,登录你的 Google 账户:

https://remotedesktop.google.com/support/

安装(Ubuntu为例)

下载

控制端前往 https://remotedesktop.google.com/headless

 

Chrome Remote Desktop 远程控制 Ubuntu 服务器

Ubuntu被控端下载程序包

  1. wget https://dl.google.com/linux/direct/chrome-remote-desktop_current_amd64.deb

用wget可以直接下载该程序包。

Chrome Remote Desktop 远程控制 Ubuntu 服务器

安装

安装该程序包(默认是下载在了/root路径,就在/root路径安装)

  1. sudo apt-get install -y /root/chrome-remote-desktop_current_amd64.deb

然后安装桌面图形,这里推荐 Xfce,因为他是最轻量的。你也可以选择其他的,可以参考(Cinnamon, Gnome, Gnome-Classic, KDE Plasma):

https://cloud.google.com/architecture/chrome-desktop-remote-on-compute-engine#install_an_x_windows_system_desktop_environment

安装Xfce

安装Xfce本体

  1. sudo DEBIAN_FRONTEND=noninteractive \
  2. apt install --assume-yes xfce4 desktop-base dbus-x11 xscreensaver

设置Xfce为默认桌面

  1. sudo bash -c 'echo "exec /etc/X11/Xsession /usr/bin/xfce4-session" > /etc/chrome-remote-desktop-session'

(可选)安装桌面套件,包括Firefox,LibreOffice,PDF viewer等

  1. sudo apt install --assume-yes task-xfce-desktop

禁止默认的桌面显示

  1. sudo systemctl disable lightdm.service

(可选)安装Chrome

  1. curl -L -o google-chrome-stable_current_amd64.deb \
  2. https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
  3. sudo apt install --assume-yes ./google-chrome-stable_current_amd64.deb

新建用户

由于它不支持root用户(安全起见),所以我们需要新加一个用户

  1. adduser ednovas

然后填入信息即可。后面User Information全部跳过即可。

(可选,不建议,安全第一)如果想要把用户权限提为管理员,可以使用以下命令。

  1. adduser ednovas sudo

校验

控制端,点击下一步,然后会出现类似下图的内容,选择最后一个复制黏贴到被控端。

 

Chrome Remote Desktop 远程控制 Ubuntu 服务器

记得在最后添加一个 --user-name=ednovas ,这样就可以指定以ednovas用户运行了。

这个黏贴的校验码要尽快使用,几分钟就会过期,而且只能使用一次,如果出了任何bug或者报错,就要在控制端点重来。

运行正常以后,就可以查看是否正常运行了。

状态

$USER 就是刚刚创建且运行的用户名

  1. sudo systemctl status chrome-remote-desktop@$USER

Chrome Remote Desktop 远程控制 Ubuntu 服务器

如上图即运行正常。

连接

https://remotedesktop.google.com/access 页面选择刚刚新加的,然后输入设置的PIN码连接即可。

 

Chrome Remote Desktop 远程控制 Ubuntu 服务器参考 https://cloud.google.com/architecture/chrome-desktop-remote-on-compute-engine

Ubuntu-Server 22.04安装详细过程

阅读(1.26K)评论(0)

Ubuntu-Server 22.04安装详细过程

1.https://ubuntu.com/download/server 乌班图镜像网址,点击下载即可

Ubuntu-Server 22.04安装详细过程

二.安装乌班图镜像,最好自己准备u盘在ISO软件内制作完成

1.选择 Install Ubuntu Server

Ubuntu-Server 22.04安装详细过程

2.选择安装语言为英语

Ubuntu-Server 22.04安装详细过程

3.安装程序更新选择不更新,继续下一步

Ubuntu-Server 22.04安装详细过程

4.键盘布局选择默认,继续下一步

Ubuntu-Server 22.04安装详细过程

5.选择安装服务器版本,server版本比mini版本配置多,可自行选择

Ubuntu-Server 22.04安装详细过程

6.网络配置,使用 DHCP 或者 静态IP(建议设置静态IP,如果选择DHCP,则在此界面直接选择 Done 后回车即可)。

Ubuntu-Server 22.04安装详细过程

静态IP设置方法,点击ens33 然后选择ipv4

Ubuntu-Server 22.04安装详细过程

静态IP设置方法,点击ens33 然后选择ipv4

Ubuntu-Server 22.04安装详细过程

自行根据自己网络情况填写ip地址配置,最后点击save保存退出,继续下一步即可

Ubuntu-Server 22.04安装详细过程

7.Configure proxy配置页面的Proxy address无需配置,直接点击Done即可

Ubuntu-Server 22.04安装详细过程

8.设置镜像源地址,这个直接点击Done下一步

可以配置阿里云(http://mirrors.aliyun.com/ubuntu/)下载加速 后续自行添加即可

Ubuntu-Server 22.04安装详细过程

9.磁盘配置,选择Done磁盘自动分配

需要手动分区的话选择 [custom storage layout]即可Ubuntu-Server 22.04安装详细过程

手动分区配置,向下移动光标选择手动分区,选择Done下一步Ubuntu-Server 22.04安装详细过程

选择空闲分区进行设置

Ubuntu-Server 22.04安装详细过程

为磁盘进行分区,下图含义为 根目录设置10G大小(可根据自己磁盘大小自行配置)

类型选为ext4 最后点击Create添加即可Ubuntu-Server 22.04安装详细过程

这里设置的根目录为10G,boot为4.997G,home为5G,swap 交换空间为8GB一般为物理内存的2倍,以上设置可以根据自己磁盘大小自行配置

Ubuntu-Server 22.04安装详细过程
再次确认 Continue 继续
Ubuntu-Server 22.04安装详细过程
10.设置主机用户名与密码及服务器名称,设置完点击Done下一步即可
Ubuntu-Server 22.04安装详细过程
11.按回车键 选择安装 SSH服务,方便远程连接,然后选择Done下一步即可
Ubuntu-Server 22.04安装详细过程
12.选择预置服务安装,按自己需求选取,如不需要选择Done下一步继续
Ubuntu-Server 22.04安装详细过程
13.进入安装系统环节
Ubuntu-Server 22.04安装详细过程
14.选择不安装更新,重启系统
Ubuntu-Server 22.04安装详细过程
15.这里等待时间会长一点,耐心等待
Ubuntu-Server 22.04安装详细过程
16.输入登录用户名密码,进入系统界面 后续可自行安装各种需求配置
Ubuntu-Server 22.04安装详细过程
Ubuntu-Server 22.04安装详细过程

Centos下部署指定版本java环境

阅读(405)评论(0)

查看已安装的JDK信息

  1. rpm -qa|grep java

自动草稿

卸载已安装的JDK信息

  1. rpm -e --nodeps [复制上一步输出的jdk信息]

测试java是否卸载

  1. java -version

如删除成功会提示 “-bash: java: command not found”

安装

上传或下载压缩包到linux环境

  1. wget https://pan.eoox.cn/s/KBAJXIq/博客直链/jdk-8u161-linux-x64.tar.gz #本站下载链接如失效请自行寻找

自动草稿

然后解压

  1. tar -zxvf [压缩包名]
  2. tar -zxvf jdk-8u161-linux-x64.tar.gz

将解压后的文件夹复制到  /usr/share

  1. cp -r [文件夹名] /usr/share/[文件夹名]
  2. cp -r jdk1.8.0_161 /usr/share/jdk1.8.0_161

自动草稿

配置环境变量

  1. vim /etc/profile

在最末尾添加

  1. export JAVA_HOME=/usr/share/[文件夹]
  2. export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  3. export PATH=$PATH:$JAVA_HOME/bin
  4. 以下为本文的配置环境
  5. export JAVA_HOME=/usr/share/jdk1.8.0_161
  6. export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  7. export PATH=$PATH:$JAVA_HOME/bin

自动草稿

使文件生效并检测环境

  1. source /etc/profile
  2. java -version

自动草稿

Linux/Windows/Mac上如何刷新DNS缓存?

阅读(446)评论(0)

一般我们在更换DNS源或配置了HOSTS后,刷新DNS缓存让你可以得到新的域名解析。当你无法正确访问一个新注册的域名时就可以刷新dns缓存试试,但是不同的系统如Windows、Mac OS和Linux上的方法是不一样的。

 

自动草稿

如果是 Win 系统:
1.在附件中找到 cmd 或Win+R快捷键并输入cmd运行;
2.在打开的命令行窗口,输入 ipconfig /flushdns;

如果是Linux系统,刷新 DNS 缓存需要重起 nscd daemon:

1.要重起 nscd daemon,在命令行窗口(terminal)输入 /etc/rc.d/init.d/nscd restart

2.命令执行完毕,你的DNS缓存就被刷新了。

如果是比较新的Linux版本,你可能需要使用下面的命令:/etc/init.d/nscd restart或systemctrl restart nscd

如果是mac OS系统:
1.在命令行窗口(terminal)输入 lookupd -flushcache或type dscacheutil -flushcache

最新的 OS X Mountain Lion or Lion 上刷新DNS应该是:sudo killall -HUP mDNSResponder。

Linux 中如何自动批量创建用户

阅读(450)评论(0)

 Linux 系统管理员,你有时必须向系统添加新的用户帐户。为此,经常使用 adduser 命令。当涉及到多个用户的创建时,adduser 命令可能会变得相当无聊和耗时。这篇短文旨在为 Linux 系统管理员提供一种简单而无人值守的方式来批量创建用户。newusers 命令将帮助你通过从预填文件中获取信息来创建多个用户。

 

要求

访问 Linux 计算机的特权。

约定

#- 给定命令需要以 root 用户权限运行或者使用sudo命令

$- 给定命令以常规权限用户运行

如何进行
创建一个包含用户名的文件

首先,你需要创建一个包含用户名列表的文件。

$ vi users-list.txt

在文件中,一个用户一行,下面是样式:

Username:Password:User ID:Group ID:User Info:Home Directory:Default Shell
Username:Password:User ID:Group ID:User Info:Home Directory:Default Shell
Username:Password:User ID:Group ID:User Info:Home Directory:Default Shell
...
创建用户

在创建了包含用户信息的文件后,使用 newusers命令创建用户。

# newusers users-list.txt
检查用户账户

最后你可以确认用户已经正确创建了,在/etc/passwd 文件中查看它们:

# tail /etc/passwd

Linux 中如何自动批量创建用户

CentOS7 更新yum源

阅读(534)评论(0)

备份

cd /etc/yum.repos.d/
mkdir repo_bak
mv *.repo repo_bak/

下载新的CentOS-Base.repo 到/etc/yum.repos.d/(多选一)

#使用curl下载阿里云镜像源文件
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
#使用curl下载网易云镜像源文件
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
#使用curl下载华为云镜像源文件
curl -o /etc/yum.repos.d/CentOS-Base.repo https://repo.huaweicloud.com/repository/conf/CentOS-7-reg.repo
#使用curl下载腾讯云镜像源文件
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo

清除并生成新的yum缓存

yum clean all
yum makecache

安装EPEL(Extra Packages for Enterprise Linux )源

yum install -y epel-release

再次清除并生成新的yum缓存

yum clean all
yum makecache

查看启用的yum源和所有的yum源

yum repolist enabled
yum repolist all

更新yum

yum -y update

如何在Linux下编译安装OpenCV

阅读(570)评论(0)

OpenCV是一个跨平台的计算机视觉库,可以运行在Windows、Linux、MacOS等操作系统上。OpenCV提供了众多语言的接口,其中就包含了Python,Python是一门上手容易、使用起来十分让人愉悦的语言,利用Python学习OpenCV,相信能更快的获得效果。
OpenCV的官方下载网址是http://opencv.org/releases.html,我选择的是最新3.2.0版本,对于Windows用户,可直接下载exe文件安装,过程十分简单,这里就不再多说了,如果遇到问题可以看看官方的安装指南,对于Linux用户,可下载OpenCV源码自行编译,在官网上下载zip格式的源码压缩包。

准备环境

首先安装如下几个软件包:

  • GCC 4.4.x or later
  • CMake 2.8.7 or higher
  • Git
  • GTK+2.x or higher, including headers (libgtk2.0-dev)
  • pkg-config
  • Python 2.6 or later and Numpy 1.5 or later with developer packages (python-dev, python-numpy)
  • ffmpeg or libav development packages: libavcodec-dev, libavformat-dev, libswscale-dev
  • [optional] libtbb2 libtbb-dev
  • [optional] libdc1394 2.x
  • [optional] libjpeg-dev, libpng-dev, libtiff-dev, libjasper-dev, libdc1394-22-dev
  • [optional] CUDA Toolkit 6.5 or higher

[optional]代表这个package是可选的,上面这些包都是可以通过apt-get命令直接安装的,打开终端,输入以下命令:

[compiler]

$ sudo apt-get install build-essential

[required]

$ sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev

[optional]

$ sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-dev

只需一小会,编译所依赖的packages便全部安装完毕了(这也是我喜欢Linux的原因之一,安装package十分的便利)。接着就是开始编译了,实际上编译只需要三行命令就可以完成。不过在此之前,还要在解压后的opencv-XXX 文件夹内建立一个build文件夹,编译生成的makefiles、project files、object files和output files会放在build文件夹里面,完成后,就可以开始正式的编译了。

开始安装
第一步,配置。
$ cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..

CMAKE_BUILD_TYPE:     build的类型,有Release和Debug两种
CMAKE_INSTALL_PREFIX:  指定想要安装OpenCV的文件夹目录,一般就用/usr/local

除此之外,还可以添加上BUILD_DOCS 来build文档 以及 BUILD_EXAMPLES 来build所有的样例

注意:如果上面的命令行无法工作,则把-D后面的空格去掉:

$ cmake -D CMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local ..
第二步,build。为了加快编译速度,一般会使用多线程的方法:
make -j7 # 同时使用七个线程
第三步,安装。
sudo make install

如果到现在你还没遇到任何问题,那么恭喜你,你已经成功在Linux上安装了OpenCV。为了测试你的OpenCV能否在Python上使用,可以运行一段小代码,读取一张图片并显示出来:

import cv2

image = cv2.imread("logo.png", 1)
cv2.imshow("Hello, world!", image)
cv2.waitKey(0)
cv2.destroyAllWindows()

如果运行时报错,尝试把图片的相对路径改为绝对路径。运行成功后,你会看到:
如何在Linux下编译安装OpenCV

CentOS 8停止维护后我们怎么来进行修复yum故障问题?

阅读(445)评论(0)

自从2021年底CentOS 8停止了维护后yum就无法正常使用了,虽然CentOS 8的稳定性是毋庸置疑的,甚至客户也没有要求没有更新CentOS 8,但很明显这是不科学的,今天自己搭建了一个蜜网系统,想着将自己代运维的服务器都加入进来,需要用到yum进行一些更新就顺手修复了这个故障,趁着几个服务器都在yum update中……,就顺手做个笔记记录下来,因为站长发现网上大部分的教程都是瞎扯淡。

自动草稿

第一个故障:yum error: rpmdb: BDB0113
就是运行yum后,出现BDB0113等一系列的错误,如下图:自动草稿

 

这个应该是需要重新构建rpm数据库了,具体命令如下:

cd /var/lib/rpm
rm -rf __db*
rpm –rebuilddb

自动草稿

第二个故障:Failed to download metadata for repo ‘appstream’
这个错误主要就是CentOS 8默认的源已经失效造成的,我们只需要删除旧的默认源,替换成阿里云的CentOS 8镜像源即可。

进入yum的repos目录
cd /etc/yum.repos.d/

修改所有的CentOS文件内容
sed -i ‘s/mirrorlist/#mirrorlist/g’ /etc/yum.repos.d/CentOS-*

sed -i ‘s|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g’ /etc/yum.repos.d/CentOS-*

更新yum源为阿里镜像
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo

yum clean all

yum makecache

好了,到这里就修复好了yum的故障了,实测有效的哦!

linux下 awk内置变量使用介绍

阅读(174)评论(0)

我们将逐渐揭开 awk 功能的神秘面纱,在本节中,我们将介绍 awk 内置built-in变量的概念。你可以在 awk 中使用两种类型的变量,它们是:用户自定义user-defined变量和内置变量。

linux下 awk内置变量使用介绍

我们将逐渐揭开 awk 功能的神秘面纱,在本节中,我们将介绍 awk 内置built-in变量的概念。你可以在 awk 中使用两种类型的变量,它们是:用户自定义user-defined变量和内置变量。awk 内置变量已经有预先定义的值了,但我们也可以谨慎地修改这些值.

awk 内置变量包括:
  • FILENAME : 当前输入文件名称
  • NR : 当前输入行编号(是指输入行 1,2,3……等)
  • NF : 当前输入行的字段编号
  • OFS : 输出字段分隔符
  • FS : 输入字段分隔符
  • ORS : 输出记录分隔符
  • RS : 输入记录分隔符
FILENAME :

让我们继续演示一些使用上述 awk 内置变量的方法,想要读取当前输入文件的名称,你可以使用 FILENAME 内置变量,如下:$ awk ' { print FILENAME } ' ~/domains.txt

linux下 awk内置变量使用介绍

你会看到,每一行都会对应输出一次文件名,那是你使用 FILENAME 内置变量时 awk 默认的行为。我们可以使用 NR 来统计一个输入文件的行数(记录),谨记:它也会计算空行,正如我们将要在下面的例子中看到的那样。 输出文件内容 当我们使用 cat 命令查看文件 domains.txt 时,会发现它有 14 行文本和 2 个空行:$ cat ~/domains.txt

linux下 awk内置变量使用介绍

awk 统计行数:
$ awk ' END { print "Number of records in file is: ", NR } ' ~/domains.txt

linux下 awk内置变量使用介绍

awk 统计文件中的字段数:
$ awk '{ "Record:",NR,"has",NF,"fields" ; }' ~/names.txt

linux下 awk内置变量使用介绍

FS 内置变量:

你也可以使用 FS 内置变量指定一个输入文件分隔符,它会定义 awk 如何将输入行划分成字段。FS 默认值为“空格”和“制表符”,但我们也能将 FS 值修改为任何字符来让 awk 根据情况切分输入行。有两种方法可以达到目的:第一种方法是使用 FS 内置变量;第二种方法是使用 awk 的 -F 选项。来看 Linux 系统上的 /etc/passwd 文件,该文件中的各字段是使用 冒号(:) 分隔的,因此,当我们想要过滤出某些字段时,可以将冒号(:) 指定为新的输入字段分隔符, awk 过滤密码文件中的各字段 . 我们可以使用 -F 选项,如下:$ awk -F':' '{ print $1, $4 ;}' /etc/passwd

linux下 awk内置变量使用介绍

此外,我们也可以利用 FS 内置变量,如下:$ awk ' BEGIN { FS=“:” ; } { print $1, $4 ; } ' /etc/passwd

linux下 awk内置变量使用介绍

使用 OFS 内置变量:

使用 OFS 内置变量来指定一个用于输出的字段分隔符,它会定义如何使用指定的字符分隔输出字  段 使用 awk输出的分隔符:   $ awk -F':' ' BEGIN { OFS="==>" ;} { print $1, $4 ;}' /etc/passwd

linux下 awk内置变量使用介绍

在本节中,我们已经学习了使用含有预定义值的 awk 内置变量的理念。但我们也能够修改这些值,虽然并不推荐这样做,除非你明白自己在做什么,并且充分理解(这些变量值)。

此后,我们将继续学习如何在 awk 命令操作中使用 shell 变量,所以,请继续关注我们。

登录

忘记密码 ?