分类归档

服务器教程

服务器知识、操作系统教程、服务器常用软件等

FWQ
服务器教程
Linux 环境变量配置汇总
export PATH 登录后复制 vim ~/.bashrc 登录后复制 vim ~/.bash_profile 登录后复制 vim /etc/bashrc 登录后复制 vim /etc/profile 登录后复制 vim /etc/environment 登录后复制 export命令显示当前系统定义的所有环境变量echo $PATH命令输出当前的PATH环境变量 的值这两个命令执行的效果如下uusama@ubuntu:~$ exportdeclare -x HOME="/home/uusama"declare -x LANG="en_US.UTF-8"declare -x LANGUAGE="en_US:"declare -x LESSCLOSE="/usr/bin/lesspipe %s %s"declare -x LESSOPEN="| /usr/bin/lesspipe %s"declare -x LOGNAME="uusama"declare -x MAIL="/var/mail/uusama"declare -x PATH="/home/uusama/bin:/home/uusama/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"declare -x SSH_TTY="/dev/pts/0"declare -x TERM="xterm"declare -x USER="uusama"uusama@ubuntu:~$ echo $PATH/home/uusama/bin:/home/uusama/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 其中PATH变量定义了运行命令的查找路径,以冒号:分割不同的路径,使用export定义的时候可加双引号也可不加。推荐下自己做的 Spring Cloud 的实战项目:https://github.com/YunaiV/onemall03、Linux环境变量配置方法一:export PATH使用export命令直接修改PATH的值,配置MySQL进入环境变量的方法:export PATH=/home/uusama/mysql/bin:$PATH# 或者把PATH放在前面export PATH=$PATH:/home/uusama/mysql/bin 注意事项:生效时间:立即生效生效期限:当前终端有效,窗口关闭后无效生效范围:仅对当前用户有效配置的环境变量 中不要忘了加上原来的配置,即$PATH部分,避免覆盖原来配置04、Linux环境变量配置方法二:vim ~/.bashrc通过修改用户目录下的~/.bashrc文件进行配置:vim ~/.bashrc# 在最后一行加上export PATH=$PATH:/home/uusama/mysql/bin 注意事项:生效时间:使用相同的用户打开新的终端时生效,或者手动source ~/.bashrc生效生效期限:永久有效生效范围:仅对当前用户有效如果有后续的环境变量加载文件覆盖了PATH定义,则可能不生效05、Linux环境变量配置方法三:vim ~/.bash_profile和修改~/.bashrc文件类似,也是要在文件最后加上新的路径即可:vim ~/.bash_profile# 在最后一行加上export PATH=$PATH:/home/uusama/mysql/bin 注意事项:生效时间:使用相同的用户打开新的终端时生效,或者手动source ~/.bash_profile生效生效期限:永久有效生效范围:仅对当前用户有效如果没有~/.bash_profile文件,则可以编辑~/.profile文件或者新建一个06、Linux环境变量配置方法四:vim /etc/bashrc该方法是修改系统配置,需要管理员权限(如root)或者对该文件的写入权限:# 如果/etc/bashrc文件不可编辑,需要修改为可编辑chmod -v u+w /etc/bashrcvim /etc/bashrc# 在最后一行加上export PATH=$PATH:/home/uusama/mysql/bin 注意事项:生效时间:新开终端生效,或者手动source /etc/bashrc生效生效期限:永久有效生效范围:对所有用户有效07、Linux环境变量配置方法五:vim /etc/profile该方法修改系统配置,需要管理员权限或者对该文件的写入权限,和vim /etc/bashrc类似:# 如果/etc/profile文件不可编辑,需要修改为可编辑chmod -v u+w /etc/profilevim /etc/profile# 在最后一行加上export PATH=$PATH:/home/uusama/mysql/bin 注意事项:生效时间:新开终端生效,或者手动source /etc/profile生效生效期限:永久有效生效范围:对所有用户有效另外搜索公众号Linux中文社区回复关键字"私房菜”获取一份惊喜礼包。 08、Linux环境变量配置方法六:vim /etc/environment该方法是修改系统环境配置文件,需要管理员权限或者对该文件的写入权限:# 如果/etc/bashrc文件不可编辑,需要修改为可编辑chmod -v u+w /etc/environmentvim /etc/profile# 在最后一行加上export PATH=$PATH:/home/uusama/mysql/bin 注意事项:生效时间:新开终端生效,或者手动source /etc/environment生效生效期限:永久有效生效范围:对所有用户有效09、Linux环境变量加载原理解析上面列出了环境变量的各种配置方法,那么Linux是如何加载这些配置的呢?是以什么样的顺序加载的呢?特定的加载顺序会导致相同名称的环境变量 定义被覆盖或者不生效。10、环境变量的分类环境变量可以简单的分成用户自定义的环境变量以及系统级别的环境变量。用户级别环境变量 定义文件:~/.bashrc、~/.profile(部分系统为:~/.bash_profile)系统级别环境变量 定义文件:/etc/bashrc、/etc/profile(部分系统为:/etc/bash_profile)、/etc/environment 登录后复制 另外在用户环境变量中,系统会首先读取~/.bash_profile(或者~/.profile)文件,如果没有该文件则读取~/.bash_login,根据这些文件中内容再去读取~/.bashrc。 11、测试Linux环境变量加载顺序的方法 为了测试各个不同文件的环境变量 加载顺序,我们在每个环境变量 定义文件中的第一行都定义相同的环境变量 UU_ORDER,该变量的值为本身的值连接上当前文件名称。 需要修改的文件如下: /etc/environment 登录后复制…
2024-11-18 阅读全文 →
FWQ
服务器教程
命令行工具:提高你的服务器安全性
命令行工具:提高你的服务器安全性 在当今数字化时代,服务器的安全性变得尤为重要。攻击者利用各种漏洞和技术,不断试图入侵服务器系统,窃取数据或者进行恶意操作。为了保护服务器的安全,我们需要采取各种措施来防止入侵。命令行工具是一个强大的工具,可以帮助我们提高服务器的安全性。本文将介绍一些常用的命令行工具,并提供相关的代码示例。 fail2ban fail2ban是一款用于防止暴力破解的工具。它通过监视登录尝试并暂时禁止来自特定IP地址的访问,从而有效地防止暴力破解攻击。以下是安装和配置fail2ban的示例代码: # 安装fail2ban sudo apt-get install fail2ban # 创建自定义的jail.local配置文件 sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local # 编辑jail.local文件 sudo nano /etc/fail2ban/jail.local # 配置fail2ban监视SSH登录尝试 [sshd] enabled = true port…
2024-11-18 阅读全文 →
FWQ
服务器教程
9 个实用 shell 脚本,建议收藏!
Dos 攻击防范(自动屏蔽攻击 IP) #!/bin/bashDATE=$(date +%d/%b/%Y:%H:%M)LOG_FILE=/usr/local/nginx/logs/demo2.access.logABNORMAL_IP=$(tail -n5000 $LOG_FILE |grep $DATE |awk '{a[$1]++}END{for(i in a)if(a[i]>10)print i}')for IP in $ABNORMAL_IP; do    if [ $(iptables -vnL |grep -c "$IP") -eq 0 ]; then        iptables -I INPUT -s $IP -j DROP        echo "$(date +'%F_%T') $IP" >> /tmp/drop_ip.log    fidone 登录后复制 Linux 系统发送告警脚本 # yum install mailx# vi /etc/mail.rcset from=baojingtongzhi@163.com smtp=smtp.163.comset smtp-auth-user=baojingtongzhi@163.com smtp-auth-password=123456set smtp-auth=login 登录后复制 MySQL 数据库备份单循环 #!/bin/bashDATE=$(date +%F_%H-%M-%S)HOST=localhostUSER=backupPASS=123.comBACKUP_DIR=/data/db_backupDB_LIST=$(mysql -h$HOST -u$USER -p$PASS -s -e "show databases;" 2>/dev/null |egrep -v "Database|information_schema|mysql|performance_schema|sys")for DB in $DB_LIST; do    BACKUP_NAME=$BACKUP_DIR/${DB}_${DATE}.sql    if ! mysqldump -h$HOST -u$USER -p$PASS -B $DB > $BACKUP_NAME 2>/dev/null; then        echo "$BACKUP_NAME 备份失败!"    fidone 登录后复制 MySQL 数据库备份多循环 #!/bin/bashDATE=$(date +%F_%H-%M-%S)HOST=localhostUSER=backupPASS=123.comBACKUP_DIR=/data/db_backupDB_LIST=$(mysql -h$HOST -u$USER -p$PASS -s -e "show databases;" 2>/dev/null |egrep -v "Database|information_schema|mysql|performance_schema|sys")for DB in $DB_LIST; do    BACKUP_DB_DIR=$BACKUP_DIR/${DB}_${DATE}    [ ! -d $BACKUP_DB_DIR ] && mkdir -p $BACKUP_DB_DIR &>/dev/null    TABLE_LIST=$(mysql -h$HOST -u$USER -p$PASS -s -e "use $DB;show tables;" 2>/dev/null)    for TABLE in $TABLE_LIST; do        BACKUP_NAME=$BACKUP_DB_DIR/${TABLE}.sql        if ! mysqldump -h$HOST -u$USER -p$PASS $DB $TABLE > $BACKUP_NAME 2>/dev/null; then            echo "$BACKUP_NAME 备份失败!"        fi    donedone 登录后复制 Nginx 访问访问日志按天切割  #!/bin/bashLOG_DIR=/usr/local/nginx/logsYESTERDAY_TIME=$(date -d "yesterday" +%F)LOG_MONTH_DIR=$LOG_DIR/$(date +"%Y-%m")LOG_FILE_LIST="default.access.log"for LOG_FILE in $LOG_FILE_LIST; do    [ ! -d $LOG_MONTH_DIR ] && mkdir -p $LOG_MONTH_DIR    mv $LOG_DIR/$LOG_FILE $LOG_MONTH_DIR/${LOG_FILE}_${YESTERDAY_TIME}donekill -USR1 $(cat /var/run/nginx.pid) 登录后复制 Nginx 访问日志分析脚本 #!/bin/bash# 日志格式: $remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" "$http_x_forwarded_for"LOG_FILE=$1echo "统计访问最多的10个IP"awk '{a[$1]++}END{print "UV:",length(a);for(v in a)print v,a[v]}' $LOG_FILE |sort -k2 -nr |head -10echo "----------------------"echo "统计时间段访问最多的IP"awk '$4>="[01/Dec/2018:13:20:25" && $410)print v,a[v]}}' $LOG_FILE |sort -k2 -nrecho "----------------------"echo "统计访问页面状态码数量"awk '{a[$7" "$9]++}END{for(v in a){if(a[v]>5)print v,a[v]}}' 登录后复制 查看网卡实时流量脚本 #!/bin/bashNIC=$1echo -e " In ------ Out"while true; do    OLD_IN=$(awk '$0~"'$NIC'"{print $2}' /proc/net/dev)    OLD_OUT=$(awk '$0~"'$NIC'"{print $10}' /proc/net/dev)    sleep 1    NEW_IN=$(awk  '$0~"'$NIC'"{print $2}' /proc/net/dev)    NEW_OUT=$(awk '$0~"'$NIC'"{print $10}' /proc/net/dev)    IN=$(printf "%.1f%s" "$((($NEW_IN-$OLD_IN)/1024))" "KB/s")    OUT=$(printf "%.1f%s" "$((($NEW_OUT-$OLD_OUT)/1024))" "KB/s")    echo "$IN $OUT"    sleep 1done 登录后复制…
2024-11-18 阅读全文 →
FWQ
服务器教程
Nginx Proxy Manager与分布式存储系统的集成:解决海量数据访问问题
Nginx Proxy Manager与分布式存储系统的集成:解决海量数据访问问题,需要具体代码示例 引言:随着大数据时代的到来,许多企业面临着处理海量数据的挑战。传统的单节点存储系统无法满足高并发的数据请求和实时数据处理的需求。为了解决这个问题,许多企业开始采用分布式存储系统来处理海量数据。本文将介绍如何将Nginx Proxy Manager与分布式存储系统集成,以解决海量数据访问问题。 一、Nginx Proxy Manager简介Nginx Proxy Manager是一个基于Nginx的反向代理管理器,它提供了一个用户友好的Web界面来管理代理服务。Nginx Proxy Manager可以轻松地配置和管理代理规则,并支持自动负载均衡、反向代理缓存等功能。它是一个功能强大且易于使用的工具,可以大大简化代理服务的配置和管理。 二、分布式存储系统的选择在选择分布式存储系统之前,我们需要明确自己的需求。根据不同的应用场景,我们可以选择不同的分布式存储系统,比如Hadoop、HBase、Cassandra等。这里以Hadoop为例来说明,Hadoop是一个开源的分布式存储和计算平台,它可以在廉价的硬件上构建大规模的数据存储和处理系统。 三、Nginx Proxy Manager与Hadoop集成的步骤 安装和配置Nginx Proxy Manager首先,我们需要在服务器上安装和配置Nginx Proxy Manager。具体的安装和配置步骤可以参考Nginx Proxy Manager的官方文档。 安装Hadoop集群接下来,我们需要搭建一个Hadoop集群。在这个示例中,我们假设我们有3台服务器,分别为namenode、datanode1和datanode2。其中,namenode是Hadoop的主节点,负责存储文件元数据和控制整个集群的运行;datanode1和datanode2是Hadoop的工作节点,负责存储和处理实际的数据。 配置Nginx Proxy Manager的反向代理规则在Nginx…
2024-11-18 阅读全文 →
FWQ
服务器教程
linux系统能用上网卡么
linux系统能用上网卡,linux支持多种类型的网络接口卡,包括有线以太网卡、wi-fi网络适配器、蓝牙网卡等,当哟用户在linux系统中插入或连接一个网络接口卡时,系统会自动识别并分配相应的网络设备。 本教程操作系统:Linux5.18.14系统、Dell G3电脑。 Linux 系统可以使用网络接口卡(Network Interface Card,NIC)进行网络连接和上网。 Linux 支持多种类型的网络接口卡,包括有线以太网卡(Ethernet)、Wi-Fi 网络适配器、蓝牙网卡等。当你在 Linux 系统中插入或连接一个网络接口卡时,系统会自动识别并分配相应的网络设备。 常见的 Linux 系统命令和工具可用于管理和配置网络接口卡,例如: ifconfig:显示和配置网络接口信息。 ip:另一个用于显示和配置网络接口的强大工具。 iwconfig:用于配置和管理 Wi-Fi 网络接口的命令。 nmcli:用于与 NetworkManager 交互的命令行界面,可用于管理网络连接和配置。 你可以使用这些命令和工具来查看当前系统中的网络接口卡,并配置 IP 地址、子网掩码、默认网关等网络参数,从而实现网络连接和上网。 需要注意的是,对于某些特殊的无线网卡或其他较新的硬件,可能需要安装额外的驱动程序来使其正常工作。在大多数情况下,Linux 内核已经提供了广泛的硬件支持,可以自动识别和驱动大部分常见的网络接口卡。…
2024-11-18 阅读全文 →
FWQ
服务器教程
安全的Linux服务器环境:利用命令行进行配置与保护
安全的Linux服务器环境:利用命令行进行配置与保护 摘要:Linux操作系统在服务器领域被广泛应用,但随之而来的是服务器安全性的挑战。本篇文章将介绍如何利用命令行来配置和保护Linux服务器环境,以确保其安全性。我们将涵盖常见的安全配置问题,并提供一些有用的代码示例。 强化SSH访问 SSH是远程服务器管理的常用工具,然而默认的配置可能存在安全隐患。以下是一些建议的配置方法: 1.1 禁用root用户登录 在/etc/ssh/sshd_config文件中,将PermitRootLogin的值修改为no,即可禁止root用户通过SSH登录服务器。 示例代码: sudo nano /etc/ssh/sshd_config 登录后复制 找到PermitRootLogin,并将其修改为no。保存文件并重启SSH服务。 sudo service ssh restart 登录后复制 1.2 使用公钥身份验证 公钥身份验证提供了更强的安全性,因为它不依赖于密码。使用ssh-keygen命令生成公私钥对,并将公钥上传到服务器的~/.ssh/authorized_keys文件中。 示例代码: ssh-keygen ssh-copy-id user@server_ip 登录后复制 防火墙与网络安全 2.1…
2024-11-18 阅读全文 →
FWQ
服务器教程
如何在Linux上安装和配置Git版本控制系统
如何在linux上安装和配置git版本控制系统 引言:Git是一款开源的分布式版本控制系统,广泛应用于软件开发,可以有效地追踪文件的变更,协调多人协作以及管理版本的发布。在Linux系统中安装和配置Git是非常简单的,本文将为大家详细介绍如何在linux上安装和配置git版本控制系统。 步骤一:安装Git在Linux系统中,我们可以使用包管理器来安装Git。以下是在不同的Linux发行版上安装Git的方法: 在Debian/Ubuntu上,打开终端并输入以下命令: sudo apt-get update sudo apt-get install git 登录后复制 在CentOS/Fedora上,打开终端并输入以下命令: sudo yum update sudo yum install git 登录后复制 在Arch Linux上,打开终端并输入以下命令: sudo pacman -Syu sudo pacman…
2024-11-18 阅读全文 →
FWQ
服务器教程
centos如何删除文件夹下所有文件
在 centos 中删除某个文件夹下的所有文件,按照以下步骤操作:打开终端并导航到目标文件夹。使用 rm -rf * 命令删除所有文件,其中 -r 表示递归删除,-f 表示强制删除。使用 ls 命令检查结果,确认文件已删除。 如何在 CentOS 中删除文件夹下的所有文件 要删除 CentOS 中某个文件夹下的所有文件,可以使用以下步骤: 1. 打开终端 在桌面或应用程序菜单中搜索“终端”并打开它。 2. 导航到目标文件夹 使用 cd 命令导航到要删除文件所在的文件夹。例如,要删除 /home/user/myfolder 中的文件,可以使用以下命令:…
2024-11-18 阅读全文 →
FWQ
服务器教程
如何进行Linux系统的应用程序部署和管理
在今天的IT时代,Linux系统成为了非常流行的操作系统之一。很多业内人士喜欢使用Linux部署应用程序,因为Linux系统稳定且开放源代码,开发者可以方便地开发和集成应用程序。 本文将介绍如何进行Linux系统的应用程序部署和管理。我们将使用一个实际的应用程序作为案例,通过具体的代码示例来演示如何实现部署和管理。 应用程序的准备 在我们开始之前,我们需要准备一个简单的应用程序,并打包成可执行文件。我们将使用一个简单的Python脚本,该脚本将输出“Hello, World!”。 以下是Python脚本的代码示例: #!/usr/bin/env python3 print('Hello, World!') 登录后复制 在运行此脚本之前,我们需要确保安装了Python 3。您可以在命令行界面输入以下命令来检查: python3 --version 登录后复制 如果Python 3已成功安装,您应该会看到类似如下的输出: Python 3.8.5 登录后复制 接下来,我们将使用PyInstaller将Python脚本打包成可执行文件。PyInstaller是一个用于Python应用程序的打包工具,它可以将Python代码打包成可独立执行的二进制文件。您可以通过以下命令来安装: pip3 install pyinstaller 登录后复制 安装完PyInstaller后,输入以下命令对Python脚本进行打包: pyinstaller…
2024-11-18 阅读全文 →
FWQ
服务器教程
docker怎么查找容器
您可以使用 docker 提供的多种方法查找容器,包括:docker cli:使用命令如 docker ps 列出容器,并使用过滤器缩小搜索范围。docker api:发送请求以检索容器信息。docker compose:使用命令如 docker-compose ps 列出容器。docker 工具:使用 docker explorer 或 portainer 等工具在图形界面中管理容器。容器 id:使用唯一 id 与 docker cli、api 或工具一起查找容器。 如何查找 Docker 容器 Docker…
2024-11-18 阅读全文 →