2024-08-16

在Linux系统中,网卡名称由udev系统自动分配,通常是基于硬件属性如ID和网络地址。如果需要修改网卡名称,可以通过以下步骤进行:

  1. 找到当前网卡名称:

    
    
    
    ip link show
  2. 创建或编辑 /etc/udev/rules.d/70-persistent-net.rules 文件,为网卡指定新的名称。

    文件内容通常如下所示:

    
    
    
    # PCI device 0x1022:0x2000 (pcnet32)
    SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:8f:89:97", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="net0"

    NAME="net0" 改为你想要的名称,例如 NAME="eth0"

  3. 删除 /etc/udev/rules.d/70-persistent-net-generator.rules 文件,因为它会自动生成新的名称规则。
  4. 重启系统或重新启动网络服务来应用更改。

请注意,修改网卡名称可能会影响系统的稳定性和安全性,因此在进行此类操作时应确保理解所涉及的风险。此外,某些系统或云服务可能依赖于默认的网卡名称,修改后可能会造成不必要的问题。在进行修改前,请确保已经充分考虑和备份所有相关配置。

2024-08-16



# 安装MeterSphere
curl -sL https://github.com/metersphere/metersphere/releases/download/v1.0.0/metersphere-v1.0.0.tar.gz | tar -xz
cd metersphere/
# 确保已经安装了Docker和Docker Compose
docker-compose up -d
 
# 内网穿透部分,使用cpolar内网穿透工具
# 安装cpolar (如果已经安装,请跳过此步骤)
curl -L https://www.cpolar.com/static/downloads/cpolar-stable-linux-amd64.zip -o cpolar.zip
unzip cpolar.zip
sudo ./cpolar -y # 同意协议启动cpolar服务
 
# 创建隧道以公开8080端口(MeterSphere的默认端口)
./cpolar tcp 8080
 
# 记录./cpolar命令输出的公网TCP隧道地址,例如:tcp://us-1-2-3-4.cpolar.io:28080
# 在浏览器中访问公网地址,即可远程访问MeterSphere管理界面

以上脚本提供了在Linux系统中部署MeterSphere并使用cpolar进行内网穿透的示例。首先,下载并解压MeterSphere安装包,然后使用Docker Compose启动服务。之后,安装cpolar,启动cpolar服务,并创建隧道以公开MeterSphere的8080端口。最后,记录公网隧道地址,以便远程访问MeterSphere管理界面。

2024-08-16

在Linux系统中,每个进程都有自己的环境变量的副本。当我们创建一个新的进程时,可以选择继承父进程的环境变量,或者在创建子进程时重新设置环境变量。

在Python中,我们可以使用os模块来设置和获取环境变量。以下是一些示例代码:

  1. 获取环境变量:



import os
 
# 获取环境变量
env_var = os.environ.get('ENV_VAR_NAME')
print(env_var)
  1. 设置环境变量:



import os
 
# 设置环境变量
os.environ['ENV_VAR_NAME'] = 'VALUE'
  1. 删除环境变量:



import os
 
# 删除环境变量
del os.environ['ENV_VAR_NAME']
  1. 创建子进程并继承父进程的环境变量:



import os
from subprocess import Popen
 
# 创建子进程并继承父进程的环境变量
child = Popen(['python', 'child_script.py'], env=os.environ)
child.wait()
  1. 创建子进程并设置新的环境变量:



import os
from subprocess import Popen
 
# 创建子进程并设置新的环境变量
env = os.environ.copy()
env['NEW_ENV_VAR'] = 'NEW_VALUE'
child = Popen(['python', 'child_script.py'], env=env)
child.wait()

在这些示例中,我们使用了os模块中的environ字典来管理环境变量。这个字典包含了所有的环境变量,其中键是变量名,值是变量的值。我们可以使用get()方法来获取一个环境变量,使用[]操作符来设置或修改一个环境变量,使用del操作符来删除一个环境变量。

在创建子进程时,我们可以选择传入一个自定义的环境变量字典(通过copy()方法复制父进程的环境变量,然后进行修改),这样子进程就会使用这个自定义的环境变量。如果不传入env参数,子进程将会继承父进程的环境变量。

2024-08-16

报错解释:

这个错误表明Docker服务启动失败,因为系统无法找到名为docker.service的单元文件。这通常意味着Docker服务没有正确安装,或者服务文件丢失。

解决方法:

  1. 确认Docker是否已正确安装:运行docker --version来检查Docker是否已安装。
  2. 如果Docker未安装,请按照官方文档安装:https://docs.docker.com/get-docker/
  3. 如果Docker已安装但服务文件丢失,尝试重新安装Docker:

    • 使用包管理器(如apt-getyum)移除Docker然后重新安装。
    • 对于Debian系的Linux发行版,可以尝试重新加载Docker系统的单元文件:sudo systemctl daemon-reload
  4. 检查服务状态获取更多信息:sudo systemctl status docker.service
  5. 如果问题依旧,查看日志以获取更多错误信息:journalctl -u docker.service
  6. 确保所有Docker依赖都已安装,并且没有冲突。
  7. 如果你是通过第三方源安装Docker,确保该源是可用的。

如果以上步骤无法解决问题,可能需要查看特定Linux发行版的Docker安装和故障排除指南。

2024-08-16

在CentOS 7上安装Docker的步骤如下:

  1. 卸载旧版本的Docker(如果有):



sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
  1. 安装Docker的依赖包:



sudo yum install -y yum-utils
  1. 设置Docker的稳定仓库:



sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
  1. 安装Docker Engine:



sudo yum install docker-ce docker-ce-cli containerd.io
  1. 启动Docker服务:



sudo systemctl start docker
  1. 验证Docker是否正确安装:



sudo docker run hello-world
  1. 设置Docker开机自启:



sudo systemctl enable docker

以上命令执行后,Docker将在CentOS 7上安装并启动。

2024-08-16

在Linux中,文件和目录的权限可以通过ls -l命令查看。每个文件或目录的权限都包括所有者权限、组权限和其他用户权限,并且都用三位二进制数字表示。每一位数字代表不同的权限:

  1. 读(r):值为4
  2. 写(w):值为2
  3. 执行(x):值为1

例如,权限字符串rw-r--r--转换为数字表示为644

改变文件或目录权限可以使用chmod命令。

例如,给所有者添加执行权限:




chmod u+x 文件名

移除组的写权限:




chmod g-w 文件名

设置所有者为读写执行,组为读执行,其他为读,可以用:




chmod 754 文件名

改变文件或目录所有者可以使用chown命令:

例如,将文件所有者改为用户名为john的用户:




chown john 文件名

将文件所有者和组改为johnusers




chown john:users 文件名

特别注意的是,更改文件所有者或权限可能需要超级用户(root)权限。

2024-08-16

在Linux中安装和配置Samba服务器的步骤如下:

  1. 更新系统包列表:



sudo apt update
  1. 安装Samba服务器:



sudo apt install samba
  1. 备份原始Samba配置文件(可选,但推荐):



sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.backup
  1. 编辑Samba配置文件:



sudo nano /etc/samba/smb.conf

在配置文件中,可以添加一个简单的共享区段如下:




[sambashare]
    path = /path/to/share
    read only = no
    browsable = yes

/path/to/share替换为你想要共享的实际目录路径。

  1. 重启Samba服务以应用配置更改:



sudo systemctl restart smbd
  1. (可选)如果你有UFW防火墙运行,允许Samba通过:



sudo ufw allow samba
  1. (可选)为用户创建Samba账户:



sudo adduser username
sudo smbpasswd -a username

替换username为实际的用户名。

完成这些步骤后,你应该能够从网络上的其他机器访问Samba共享。

2024-08-16

在Linux中配置网络接口的VLAN、Bonding、Bridge、MACVLAN、IPVLAN和MACVtap模式,可以通过编辑网络配置文件或使用命令行工具如ipifconfig(已废弃)。以下是各种模式的配置示例:

  1. VLAN模式:



# 创建VLAN接口
ip link add link eth0.10 type vlan id 10
 
# 配置IP地址
ip addr add 192.168.10.1/24 dev eth0.10
 
# 启用接口
ip link set dev eth0.10 up
  1. Bonding模式:



# 创建Bond接口
sudo nmcli con add type bond con-name bond0 ifname bond0 mode balance-rr
 
# 将物理接口添加到Bond
sudo nmcli con add type ethernet con-name bond-slave-eth1 ifname eth1 master bond0
sudo nmcli con add type ethernet con-name bond-slave-eth2 ifname eth2 master bond0
 
# 启动Bond接口
sudo ifconfig bond0 up
sudo nmcli con up bond0
  1. Bridge模式:



# 创建Bridge接口
sudo brctl addbr br0
 
# 将物理接口添加到Bridge
sudo ip link set eth1 master br0
sudo ip link set eth2 master br0
 
# 配置Bridge接口IP
sudo ip addr add 192.168.1.1/24 brd + dev br0
 
# 启动Bridge接口
sudo ip link set dev br0 up
  1. MACVLAN模式:



# 创建MACVLAN接口
sudo ip link add link eth0 link1 type macvlan mode bridge
 
# 配置IP地址
sudo ip addr add 192.168.1.10/24 dev link1
 
# 启动接口
sudo ip link set dev link1 up
  1. IPVLAN模式:



# 创建IPVLAN接口
sudo ip link add link eth0 ip1 type ipvlan mode private
 
# 配置IP地址
sudo ip addr add 192.168.1.10/24 dev ip1
 
# 启动接口
sudo ip link set dev ip1 up
  1. MACVtap模式:



# 创建MACVtap接口
sudo ip link add macvtap0 type macvtap mode bridge
 
# 将MACVtap与物理接口关联
sudo ip link set macvtap0 master eth0
 
# 配置IP地址
sudo ip addr add 192.168.1.10/24 dev macvtap0
 
# 启动接口
sudo ip link set dev macvtap0 up

请注意,这些命令可能需要root权限,因此在某些情况下你可能需要使用sudo。另外,这些配置可能会随着Linux发行版和网络管理工具的不同而有所变化,例如NetworkManager或systemd-networkd等。

2024-08-16

journalctl 是一个命令行工具,用于查看 systemd 的日志系统中的日志。systemd 是 Linux 系统的一个初始化系统,负责系统的启动和管理系统进程。journalctl 可以用来查看由 systemd 管理的所有单元的日志,包括系统守护进程(如 sshdhttpd)、服务和自定义进程。

基本用法如下:

  • 查看所有日志:journalctl
  • 查看特定服务的日志,如 sshdjournalctl -u sshd
  • 实时滚动查看最新日志:journalctl -f
  • 查看特定时间段的日志:journalctl --since "2021-01-01 00:00:00" --until "2021-01-02 00:00:00"
  • 显示最后N行日志:journalctl -n 50
  • 以分页方式显示日志:journalctl -f -o verbose
  • 以json格式查看日志:journalctl -o json
  • 查看指定PID的进程日志:journalctl _PID=1234
  • 查看指定用户的进程日志:journalctl _UID=1234

这些是 journalctl 的基本用法,实际使用时可以根据需要选择合适的参数。

2024-08-16

在Linux中,tar命令用于创建、维护、修改和提取tar文件。以下是使用tar命令进行文件打包和解压的基本示例:

打包文件或目录




tar -cvf archive_name.tar directory_or_file
  • -c 表示创建新的归档文件。
  • -v 表示在归档时显示详细信息。
  • -f 表示指定归档文件的名称。

解压tar文件




tar -xvf archive_name.tar
  • -x 表示从归档文件中提取文件。

打包并压缩文件或目录




tar -czvf archive_name.tar.gz directory_or_file
  • -z 表示使用gzip压缩。

解压缩tar.gz文件




tar -xzvf archive_name.tar.gz

打包并使用bzip2压缩




tar -cjvf archive_name.tar.bz2 directory_or_file

解压tar.bz2文件




tar -xjvf archive_name.tar.bz2

以上命令可以根据需要打包和解压tar文件,以及使用gzip或bzip2进行压缩和解压。