首页
留言
导航
统计
Search
1
追番推荐!免费看动漫的网站 - 支持在线观看和磁力下载
2,511 阅读
2
推荐31个docker应用,每一个都很实用
1,312 阅读
3
PVE自动启动 虚拟机 | 容器 顺序设置及参数说明
931 阅读
4
一条命令,永久激活!Office 2024!
618 阅读
5
优选 Cloudflare 官方 / 中转 IP
490 阅读
默认分类
服务器
宝塔
VPS
Docker
OpenWRT
Nginx
群晖
前端编程
Vue
React
Angular
NodeJS
uni-app
后端编程
Java
Python
SpringBoot
SpringCloud
流程引擎
检索引擎
Linux
CentOS
Ubuntu
Debian
数据库
Redis
MySQL
Oracle
虚拟机
VMware
VirtualBox
PVE
Hyper-V
计算机
网络技术
网站源码
主题模板
登录
Search
标签搜索
Java
小程序
Redis
SpringBoot
docker
Typecho
Cloudflare
docker部署
虚拟机
WordPress
群晖
uni-app
CentOS
Vue
Java类库
Linux命令
防火墙配置
Mysql
脚本
Nginx
微醺
累计撰写
264
篇文章
累计收到
11
条评论
首页
栏目
默认分类
服务器
宝塔
VPS
Docker
OpenWRT
Nginx
群晖
前端编程
Vue
React
Angular
NodeJS
uni-app
后端编程
Java
Python
SpringBoot
SpringCloud
流程引擎
检索引擎
Linux
CentOS
Ubuntu
Debian
数据库
Redis
MySQL
Oracle
虚拟机
VMware
VirtualBox
PVE
Hyper-V
计算机
网络技术
网站源码
主题模板
页面
留言
导航
统计
搜索到
33
篇与
的结果
2023-03-02
Linux 命令复习
常用命令1、目录操作cd 切换目录cd / 切换到根目录cd ~ 回到个人用户的主目录ls 查看当前目录下所有文件的详细信息 list 的意思ll 查看当前目录下所有文件的详细信息pwd 显示当前目录的全路径. 当前目录.. 上级目录2、文件操作cp 复制mv 重命名、剪切移动位置rm 删除 加上 -rf 就不会出现提示直接删除mkdir test 在当前目录下创建一个 test 文件夹touch a.txt 在当前目录下创建一个文件 a.txt./文件名 执行文件(切换到那个目录然后执行)3、文件编辑vi a.txt 编辑,文件编辑器进入后只能查看,按 i 进入编辑模式,可以移动光标进行文本编辑操作按 esc 退出编辑模式输入:wq 保存并退出(w 代表保存,q 代表退出)输入/abc 回车 搜索文件中包含 abc 的内存4、文件查看cat a.txt 一次性读取并打印 a.txt 文件里的所有信息more a.txt 读取 a.txt 文件,每次读取一屏幕,按空格键翻页tail -200 a.txt 读取后面两百行(看日志排查错误的时候,后面是最新的)tail 是尾巴的意思tail -f a.txt 实时读取这个文件(监控日志用)head -10 a.txt 从前往后读 10 行5、搜索find / -name a.txt 从根目录全局搜索(当问你我想找系统有没有 a.txt 这个文件的时候用)我给你一个日志文件,你给我找出出现错误的那行数据,怎么操作?grep "ClassLoaderLogManager" 日志文件名grep "ERROR" 日志文件名grep "EXCEPTION" 日志文件名有时候只看这行数据没用,因为错误信息太长太多了,我们怎么筛选grep -A 10 "error" test.log -A 表 after 包含这个行以及后面 10 行grep -B 10 "error" test.log -B 表示 before 包含这行和前面 10 行grep -C 10 "error" test.log -C 表示 A 和 B 的结合 包含前 10 和后 10 行其实这样看还是乱,用sz error.log 把日志下载到本地看6、其他命令tar 和 rpm 可以安装 mysql、jdk 等环境ifconfig 查看网络设备信息free -h 检查服务器内存是否足够df -lh 查看磁盘空间大小uname -a 查看系统版本yum install 安装 javajava -jar 可以启动项,但是这个是不是后台启动nohup java -jar 后台启动项目7、进程命令top 查看所有线程 像 window任务管理器ps -ef 看看有没有进程ps -ef|grep 'java' 直接 ps -ef 搜到太多,通过管道符加 grep 只看 java 项目kill -9 进程 id 看查看出进程 id 然后用 kill 删除-9 强行删除ps 和 top 的区别?ps 是查看瞬间的信息,主要查看需要查看的进程top 可以持续监控进程信息,还可以看到性能,还可以操作进程,主要看内存和 cpu 占用情况netstat -anp | grep 8080 查看 8080 端口占用情况8、文件权限文字设定法 1)u:表示属主(user) 2)g:表示同组人(group) 3)o:其他人 (other) 4)a:所有人 (all) 5)+:表示增加权限 -:表示去掉权限 例如:修改 main.c 文件的所有者权限:1).取消写权限:chmod u-w main.c2).成为可写可读的chmod u=rw main.c3).同时修改 main.c 的属主权限和组用户权限:chmod u-w,g+x main.c2)数字设定法 采用数字设定法时,权限通常由三位数字组成,每一位数字代表一种角色的权限。每个角色的数值由其所具有的权限对应的数值之和构成;1)写权限 r : (read)读权限 ,值为 4(100)2)读权限 w : (write)写权限 ,值为 2(010)3)执行权限 x: (execute)执行权限 ,值为 1(001)4)格式: chmod nnn 文件名
2023年03月02日
53 阅读
0 评论
0 点赞
2023-02-23
经常用得上的Linux Shell 脚本!
nginx日志按天切割#!/bin/bash LOG_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} done kill -USR1 $(cat /usr/local/nginx/nginx.pid)nginx acc日志分析#!/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 -10 echo "----------------------" echo "统计时间段访问最多的IP" awk '$4>="[01/Dec/2018:13:20:25" && $4<="[27/Nov/2018:16:20:49"{a[$1]++}END{for(v in a)print v,a[v]}' $LOG_FILE | sort -k2 -nr|head -10 echo "----------------------" echo "统计访问最多的10个页面" awk '{a[$7]++}END{print "PV:",length(a);for(v in a){if(a[v]>10)print v,a[v]}}' $LOG_FILE | sort -k2 -nr echo "----------------------" echo "统计访问页面状态码数量" awk '{a[$7" "$9]++}END{for(v in a){if(a[v]>5) print v,a[v]}}'服务器初始化#/bin/bash # 设置时区并同步时间 ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtimeif ! crontab -l | grep ntpdate &>/dev/null ; then (echo "* 1 * * * ntpdate time.windows.com >/dev/null 2>&1";crontab -l) |crontabfi # 禁用selinux sed -i '/SELINUX/{s/permissive/disabled/}' /etc/selinux/config # 关闭防火墙 if egrep "7.[0-9]" /etc/redhat-release &>/dev/null; then systemctl stop firewalld systemctl disable firewalldelif egrep "6.[0-9]" /etc/redhat-release &>/dev/null; then service iptables stop chkconfig iptables off fi # 历史命令显示操作时间 if ! grep HISTTIMEFORMAT /etc/bashrc; then echo 'export HISTTIMEFORMAT="%F %T `whoami` "' >> /etc/bashrc fi # SSH超时时间 if ! grep "TMOUT=600" /etc/profile &>/dev/null; then echo "export TMOUT=600" >> /etc/profile fi # 禁止root远程登录 sed -i 's/#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config # 禁止定时任务向发送邮件 sed -i 's/^MAILTO=root/MAILTO=""/' /etc/crontab # 设置最大打开文件数 if ! grep "* soft nofile 65535" /etc/security/limits.conf &>/dev/null; then cat >> /etc/security/limits.conf << EOF * soft nofile 65535 * hard nofile 65535EOF fi # 系统内核优化 cat >> /etc/sysctl.conf << EOFnet.ipv4.tcp_syncookies = 1net.ipv4.tcp_max_tw_buckets = 20480 net.ipv4.tcp_max_syn_backlog = 20480 net.core.netdev_max_backlog = 262144 net.ipv4.tcp_fin_timeout = 20 EOF # 减少SWAP使用 echo "0" > /proc/sys/vm/swappiness # 安装系统性能分析工具及其他 yum install gcc make autoconf vim sysstat net-tools iostat if查看网卡实时流量#!/bin/bash NIC=$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 1 donemysql 备份#!/bin/bash DATE=$(date +%F_%H-%M-%S) HOST=localhost USER=backup PASS=passwd BACKUP_DIR=/data/db_backup DB_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 done done监控服务器磁盘利用率#!/bin/bash HOST_INFO=host.info # 主机列表,实现采集多台主机信息,需要能够ssh到目标主机 for IP in $(awk '/^[^#]/{print $1}' $HOST_INFO); do USER=$(awk -v ip=$IP 'ip==$1{print $2}' $HOST_INFO) PORT=$(awk -v ip=$IP 'ip==$1{print $3}' $HOST_INFO) TMP_FILE=/tmp/disk.tmp ssh -p $PORT $USER@$IP 'df -h' > $TMP_FILE USE_RATE_LIST=$(awk 'BEGIN{OFS="="}/^\/dev/{print $NF,int($5)}' $TMP_FILE) for USE_RATE in $USE_RATE_LIST; do PART_NAME=${USE_RATE%=*} USE_RATE=${USE_RATE#*=} if [ $USE_RATE -ge 80 ]; then echo "Warning: $PART_NAME Partition usage $USE_RATE%!" fi done done封禁大量恶意访问的IP#!/bin/bash DATE=$(date +%d/%b/%Y:%H:%M) LOG_FILE=/usr/local/nginx/logs/access.log ABNORMAL_IP=$(tail -n10000 $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 fi done统计进程数,找出并kill 僵尸进程#!/bin/ bash ALL_PROCESS=$(1s /proc/ l egrep "[0-9]+") running_count=0 stoped_count=0 s1eeping_count=0 zombie_count=O for pid in ${ALL_PROCESS[*]}dotest -f /proc/$pid/status && state=$(egrep "state"/proc/$pid/status / awk'{print $2}')case ""$state" inR)running_count=$ ((running_count+1));T)stoped_count=$((stoped_count+1));;s)sleeping_count=$((sleeping_count+1));z)zombie_count=$( (zombie_count+1)) echo "$pid" >>zombie.txtkill -9 "$pid";;esacdoneecho -e "total:$((running_count+stoped_count+sleeping_count+zombie_count))\nrunning:$running_count\nstoped: $stoped_count\nsleeping: $sleeping_count\nzombie:$zombie_count"
2023年02月23日
44 阅读
0 评论
0 点赞
2023-02-23
换掉 VMware?轻量级虚拟机,横空出世!
对于从事IT技术行业的我们,大家对VMware虚拟机应该都比较熟悉,平时自己搭个学习、测试、开发环境啥的,还真离不开它。VMware 虚拟机的功能非常强大,比如:启动快速,运行程序更加方便快捷;虚拟系统只能模拟和现有操作系统相同的环境,而虚拟机则可以模拟出其他种类的操作系统;而且虚拟机需要模拟底层的硬件指令,所以在应用程序运行速度上比虚拟系统慢得多。VMware 虚拟机确实是真的好用,但是它是收费的,而且费用还不便宜。所以,今天,给大家介绍一款好用、轻量级的虚拟机产品 Multipass(免费开源)。Multipass 简介Multipass是一款非常轻量级的虚拟机命令管理工具,它支持 Linux、Windows 和 macO S等多平台运行环境。Multipass 是由 Ubuntu 运营公司 Canonical 所推出的开源项目。在不同的操作系统上,使用的是不同的虚拟化技术,可以使用最小的资源开销来快速创建你所需要的虚拟机。对于使用 Linux系统的程序员来讲,Multipass 它还提供一个命令行界面来管理你的Linux实例,非常的方便、易操作与管理。Multipass 安装在官方网站:https://multipass.run/ 选择对应该的系统版本下载即可:我这里选择的Windows 版本安装之后,查看自己安装的版本multipass versionMultipass使用创建Ubuntu虚拟机首先查看可以下载使用的 Ubuntu 镜像multipass find运行成功后,可以看到下面的这些镜像列表,包含各种版本的。Image Aliases Version Description snapcraft:core18 20201111 Snapcraft builder for Core 18 snapcraft:core20 20201111 Snapcraft builder for Core 20 core core16 20200818 Ubuntu Core 16 core18 20200812 Ubuntu Core 18 16.04 xenial 20210128 Ubuntu 16.04 LTS 18.04 bionic 20210129 Ubuntu 18.04 LTS 20.04 focal,lts 20210223 Ubuntu 20.04 LTS 20.10 groovy 20210209 Ubuntu 20.10 appliance:adguard-home 20200812 Ubuntu AdGuard Home Appliance appliance:mosquitto 20200812 Ubuntu Mosquitto Appliance appliance:nextcloud 20200812 Ubuntu Nextcloud Appliance appliance:openhab 20200812 Ubuntu openHAB Home Appliance appliance:plexmediaserver 20200812 Ubuntu Plex Media Server Appliance新建一个容器multipass launch --name dg然后下载最新版的 Ubuntu 镜像,之后我们就可以直接使用了multipass exec dg -- lsb_release -d操作虚拟机查看虚拟机列表虚拟机创建完成后,查看虚拟机列表。$ multipass list Name State IPv4 Image dg Running 192.168.24.5 Ubuntu 18.04 LTS现在有一台 Ubuntu 18.04 版本的虚拟机在运行,对应的 IP 地址是:192.168.24.5查看虚拟机信息通过命令你可以查看当前运行的虚拟机具体信息。$ multipass info --all Name: dg State: Running IPv4: 192.168.24.5 Release: Ubuntu 18.04.4 LTS Image hash: fe3030933742 (Ubuntu 18.04 LTS) Load: 0.00 0.00 0.00 Disk usage: 1.5G out of 4.7G Memory usage: 112.1M out of 985.7M进入虚拟机使用下面的命令查看虚拟机的系统配置信息、内存、磁盘等的使用情况。multipass shell dg如果你不想进入系统内部,也可以通过上述提到的 multipass exce 命令,来操作 Ubuntu 系统。暂停/重启虚拟机# 暂停 $ multipass stop dg # 启动 $ multipass start dg删除/释放虚拟机使用 delete 命令 删除虚拟机之后,该虚拟机实际上还是存在了,想要彻底删除则需要释放虚拟机。# 删除 $ multipass delete dg # 释放 $ multipass purge dg配置自动化既要保持开发环境和线上环境一致,又要节省部署时间。我们可以使用 --cloud-init 对容器进行初始化配置:$ multipass launch --name ubuntu --cloud-init config.yaml config.yaml 是初始化配置文件,内容如下: #cloud-config runcmd: - curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash - - sudo apt-get install -y nodejs - wget https://releases.leanapp.cn/leancloud/lean-cli/releases/download/v0.21.0/lean-cli-x64.deb - sudo dpkg -i lean-cli-x64.debruncmd 可以指定容器首次启动时运行的命令。总结经过一段时间的使用,我认为这款工具确实是不错的!比如说我要搞点 linux 的小试验,通过 Multipass 几分钟就能搭起系统来测试。要测试小型数据库集群,也可以通过 Multipass 在本地快速搭建虚拟机集群,很不错!唯一美中不足的是 Multipass 只能使用 Ubuntu 镜像,因为这款工具是由 Ubuntu 背后的 Canonical 公司开发开源的。相关链接官网:https://multipass.run/文档:https://multipass.run/docs/
2023年02月23日
32 阅读
0 评论
0 点赞
2023-02-16
CentOS7离线安装Docker和卸载Docker步骤(亲测有效)
一、CentOS7离线安装 Docker 步骤1、docker 安装包下载地址https://download.docker.com/linux/static/stable/x86_64/2、将下载的 docker-18.06.3-ce.tgz 文件上传到 Centos7 服务器上(如上传到 /home/docker 目录下),并执行 tar 命令解压,如下图:tar -zxvf docker-18.06.3-ce.tgz3、将/home/docker 目录下解压出来的所有 docker 文件复制到 /usr/bin/ 目录下cp docker/* /usr/bin/4、将 docker 注册为 service,进入/etc/systemd/system/目录,并创建 docker.service 文件cd /etc/systemd/system/touch docker.service5、编辑 docker.service 文件,将以下内容复制到 docker.service 文件中注:以下内容中 --insecure-registry=192.168.3.10 此处改为你自己服务器 ipvim docker.service[Unit] Description=Docker Application Container Engine Documentation=https://docs.docker.com After=network-online.target firewalld.service Wants=network-online.target [Service] Type=notify # the default is not to use systemd for cgroups because the delegate issues still # exists and systemd currently does not support the cgroup feature set required # for containers run by docker ExecStart=/usr/bin/dockerd --selinux-enabled=false --insecure-registry=192.168.3.10 ExecReload=/bin/kill -s HUP $MAINPID # Having non-zero Limit*s causes performance problems due to accounting overhead # in the kernel. We recommend using cgroups to do container-local accounting. LimitNOFILE=infinity LimitNPROC=infinity LimitCORE=infinity # Uncomment TasksMax if your systemd version supports it. # Only systemd 226 and above support this version. #TasksMax=infinity TimeoutStartSec=0 # set delegate yes so that systemd does not reset the cgroups of docker containers Delegate=yes # kill only the docker process, not all processes in the cgroup KillMode=process # restart the docker process if it exits prematurely Restart=on-failure StartLimitBurst=3 StartLimitInterval=60s [Install] WantedBy=multi-user.target6、给 docker.service 文件添加执行权限chmod 777 /etc/systemd/system/docker.service7、重新加载配置文件注:每次修改 docker.service 这个文件时都要重新加载下。systemctl daemon-reload8、启动 Docker 服务systemctl start docker9、设置开机启动 Docker 服务systemctl enable docker.service10、验证 docker 是否启动成功查看 Docker 状态,显示 active(running)表示启动成功systemctl status docker查看 Docker 版本docker -v11、配置镜像加速器,默认是到国外拉取镜像速度慢,如下图:编辑 /etc/docker/目录下的 daemon.json 文件,将以下内容复制到 daemon.json 文件中vim /etc/docker/daemon.json{"registry-mirrors": ["http://hub-mirror.c.163.com"]}重启 docker,使其 daemon.json 文件配置生效service docker restart二、CentOS7 离线卸载Docker步骤1、删除服务取消开机自启systemctl disable docker取消注册文件rm -rf /etc/systemd/system/docker.service2、删除命令rm -rf /usr/bin/containerd rm -rf /usr/bin/containerd-shim rm -rf /usr/bin/ctr rm -rf /usr/bin/runc rm -rf /usr/bin/docker*3、删除配置rm -rf /etc/docker/4、删除镜像或容器rm -rf /var/lib/docker
2023年02月16日
75 阅读
0 评论
0 点赞
2023-02-16
Ubuntu18.04 安装 RabbitMQ (正确安装)
安装 erlang由于 rabbitMq 需要 erlang 语言的支持,在安装 rabbitMq 之前需要安装 erlangsudo apt-get install erlang-nox安装 Rabbitmq更新源sudo apt-get update安装sudo apt-get install rabbitmq-server启动、停止、重启、状态 rabbitMq 命令sudo rabbitmq-server start sudo rabbitmq-server stop sudo rabbitmq-server restart sudo rabbitmqctl status添加 admin,并赋予 administrator 权限添加 admin 用户,密码设置为 adminsudo rabbitmqctl add_user admin admin赋予权限sudo rabbitmqctl set_user_tags admin administrator赋予 virtual host 中所有资源的配置、写、读权限以便管理其中的资源sudo rabbitmqctl set_permissions -p / admin '.*' '.*' '.*'RabbitMQ GUID 使用1、官方提供的一个 web 管理工具(rabbitmq_management) 2、安装了 Rabbitmq 后,默认也安装了该管理工具,执行命令即可启动先定位到 rabbitmq 安装目录sudo rabbitmq-plugins enable rabbitmq_management浏览器访问 http://localhost:15672/ 使用刚刚创建的 admin 就可以登录,密码也为 admin
2023年02月16日
50 阅读
0 评论
0 点赞
2023-02-15
Ubuntu下使用ssmtp+mailutils配合163邮件配置自动发送邮件
安装 ssmtp mailutilsapt install -y ssmtp mailutils编辑配置ssmtp文件vim /etc/ssmtp/ssmtp.conf# cat /etc/ssmtp/ssmtp.conf | grep -v ^# root=postmaster #163邮箱smtp mailhub=smtp.163.com:465 hostname=ubuntu UseTLS=Yes #163邮箱 root=xxxxx@163.com #邮箱名 AuthUser=xxxxx #授权码 AuthPass=授权码 #注意这里是授权码,需要去邮件界面手动添加vim /etc/ssmtp/revaliases# cat /etc/ssmtp/revaliases | grep -v ^# root:123456@163.com:smtp.163.com:465 #用户名:发送邮箱地址:邮箱smtp地址:端口测试echo "hello world" | mail -s "title" 666666@qq.com配置定时任务crontab -e0 14 * * 1 cd /root/&&/root/sendMessage.sh
2023年02月15日
51 阅读
0 评论
0 点赞
2023-02-15
CentOS-Shell-监控公网IP-变化邮件报警
Shell监控公网IP-变化邮件报警公司用的动态公网IP,但是有时IP会改变,导致部分业务有问题,我们又不能及时发现,会造成一定的影响。现在使用shell监控公网的IP,如发生变化,立即邮件报警。CentOS邮件报警可以参考这个,默认是mailx安装邮件服务yum -y install mailx配置 mailx 文件进入qq邮箱首页,点击设置>账户,然后找到下图截取的地方(需要设置的,如图)设置完之后呢,就要把生成的授权码作为邮箱的password配置/etc/mail.rc文件【下面的配置qq是假的,别用】#设置发件人名称 set from=1832025651@qq.com #设置邮件服务器 set smtp=smtp.qq.com #填写自己邮箱地址 set smtp-auth-user=1832025651@qq.com #输入邮箱验证码 set smtp-auth-password=pfljngafoqaxecff #smtp的认证方式,默认是login set smtp-auth=login测试发送邮件echo "admin ,文件内容" | mail -s "标题" 你的qq@qq.com编写Shell脚本#!/bin/bash dirfile='/home/ip_change' new_ip=`curl icanhazip.com` #获取新公网ip mail_user=1794@qq.com #接收收邮件邮箱 mail_subject="IP已经发生变化,及时处理" #邮件主题 log="/var/log/tool.log" datetime=`date '+%Y-%m-%d %H:%M:%S'` #判断文件是否存在 if [ ! -f "$dirfile" ]; then touch "$file" echo "1.1.1.1" > $dirfile fi #判断new_ip是否获取 if [ ! -n "$new_ip" ]; then echo "$datetime 公网IP获取失败,检查'curl icanhazip.com' " >> $log exit 1 fi old_ip=`cat $dirfile` #查看旧ip # 判断两个IP是否相等 发邮件 if [ "$new_ip" = "$old_ip" ]; then echo "$datetime IP正常 - true " >> $log else echo $new_ip > $dirfile echo "IP已经发生变化, 新IP: $new_ip 旧IP: $old_ip !!! " | mail -s "$mail_subject" "$mail_user" echo "$datetime IP已经发生变化 - error 新IP :$new_ip 旧IP: $old_ip" >> $log fi然后设置定时任务执行,如下:crontab -e*/10 * * * * /data/shell/getIp/getIp.sh至此,每隔10分钟,自动获取最新公网ip,如果有更新,发送到目标邮箱。
2023年02月15日
70 阅读
0 评论
0 点赞
2023-02-15
Linux 怎么防止 ssh 被暴力破解
SSH 是一种广泛使用的协议,用于安全地访问 Linux 服务器。大多数用户使用默认设置的 SSH 连接来连接到远程服务器。但是,不安全的默认配置也会带来各种安全风险。具有开放 SSH 访问权限的服务器的 root 帐户可能存在风险。尤其是如果您使用的是公共 IP 地址,则破解 root 密码要容易得多。因此,有必要了解 SSH 安全性。这是在 Linux 上保护 SSH 服务器连接的方法。1、禁用root用户登录为此,首先,禁用 root 用户的 SSH 访问并创建一个具有 root 权限的新用户。关闭 root 用户的服务器访问是一种防御策略,可以防止攻击者实现入侵系统的目标。例如,您可以创建一个名为 exampleroot 的用户,如下所示:useradd -m exampleroot passwd exampleroot usermod -aG sudo exampleroot以下是上述命令的简要说明:useradd 创建一个新用户,并且-m参数在您创建的用户的主目录下创建一个文件夹。passwd 命令用于为新用户分配密码。请记住,您分配给用户的密码应该很复杂且难以猜测。usermod -aG sudo 将新创建的用户添加到管理员组。在用户创建过程之后,需要对 sshd_config 文件进行一些更改。您可以在 /etc/ssh/sshd_config 找到此文件。使用任何文本编辑器打开文件并对其进行以下更改:# Authentication: #LoginGraceTime 2m PermitRootLogin no AllowUsers examplerootPermitRootLogin 行将阻止 root 用户使用 SSH 获得远程访问。在 AllowUsers 列表中包含 exampleroot 会向用户授予必要的权限。最后,使用以下命令重启 SSH 服务:sudo systemctl restart sshd2、更改默认端口默认的 SSH 连接端口是 22。当然,所有的攻击者都知道这一点,因此需要更改默认端口号以确保 SSH 安全。尽管攻击者可以通过 Nmap 扫描轻松找到新的端口号,但这里的目标是让攻击者的工作更加困难。要更改端口号,请打开 /etc/ssh/sshd_config 并对文件进行以下更改:Include /etc/ssh/sshd_config.d/*.confPort 22099在这一步之后,使用 sudo systemctl restart ssh 再次重启 SSH 服务。现在您可以使用刚刚定义的端口访问您的服务器。如果您使用的是防火墙,则还必须在此处进行必要的规则更改。在运行 netstat -tlpn 命令时,您可以看到您的 SSH 端口号已更改。3、禁止使用空白密码的用户访问在您的系统上可能有您不小心创建的没有密码的用户。要防止此类用户访问服务器,您可以将 sshd_config 文件中的 PermitEmptyPasswords 行值设置为 no 。PermitEmptyPasswords no4、限制登录/访问尝试默认情况下,您可以根据需要尝试多次输入密码来访问服务器。但是,攻击者可以利用此漏洞对服务器进行暴力破解。通过指定允许的密码尝试次数,您可以在尝试一定次数后自动终止SSH 连接。为此,请更改 sshd_config 文件中的 MaxAuthTries 值。MaxAuthTries 35、使用 SSH 版本 2SSH 的第二个版本发布是因为第一个版本中存在许多漏洞。默认情况下,您可以通过将 Protocol 参数添加到 sshd_config 文件来启用服务器使用第二个版本。这样,您未来的所有连接都将使用第二个版本的SSH。Include /etc/ssh/sshd_config.d/*.conf Protocol 26、关闭TCP端口转发和X11转发攻击者可以尝试通过 SSH 连接的端口转发来访问您的其他系统。为了防止这种情况,您可以在 sshd_config 文件中关闭 AllowTcpForwarding 和 X11Forwarding 功能。X11Forwarding no AllowTcpForwarding no7、使用 SSH 密钥连接连接到服务器的最安全方法之一是使用 SSH 密钥。使用 SSH 密钥时,无需密码即可访问服务器。另外,您可以通过更改 sshd_config 文件中与密码相关的参数来完全关闭对服务器的密码访问。创建 SSH 密钥时,有两个密钥: Public 和 Private 。公钥将上传到您要连接的服务器,而私钥则存储在您将用来建立连接的计算机上。在您的计算机上使用 ssh-keygen 命令创建 SSH 密钥。不要将 密码短语字段 留空并记住您在此处输入的密码。如果将其留空,您将只能使用 SSH 密钥文件访问它。但是,如果您设置了密码,则可以防止拥有密钥文件的攻击者访问它。例如,您可以使用以下命令创建 SSH 密钥:ssh-keygen8、SSH 连接的 IP 限制大多数情况下,防火墙使用自己的标准框架阻止访问,旨在保护服务器。但是,这并不总是足够的,您需要增加这种安全潜力。为此,请打开 /etc/hosts.allow 文件。通过对该文件进行的添加,您可以限制 SSH 权限,允许特定 IP 块,或输入单个 IP 并使用拒绝命令阻止所有剩余的 IP 地址。下面您将看到一些示例设置。完成这些之后,像往常一样重新启动 SSH 服务以保存更改。Linux 服务器安全的重要性 所有服务器管理员都应该考虑数据和数据安全问题。服务器安全是一个非常敏感的问题,因为攻击的主要焦点是 Web 服务器,它们几乎包含有关系统的所有信息。由于大多数服务器都在 Linux 基础架构上运行,因此熟悉 Linux 系统和服务器管理非常重要。SSH 安全只是保护服务器的方法之一。可以通过停止、阻挡或减缓攻击来最大程度地减少您受到的伤害。除了提供 SSH 安全性之外,您还可以实施许多不同的方法来保护您的 Linux 服务器。--- EOF ---
2023年02月15日
88 阅读
2 评论
1 点赞
2023-02-13
记Ubuntu16.04 下 LibreOffice的安装与使用
LibreOffice主包和语言包wget http://mirrors.ustc.edu.cn/tdf/libreoffice/stable/6.4.6/deb/x86_64/LibreOffice_6.4.6_Linux_x86-64_deb.tar.gzwget http://mirrors.ustc.edu.cn/tdf/libreoffice/stable/6.4.6/deb/x86_64/LibreOffice_6.4.6_Linux_x86-64_deb_langpack_zh-CN.tar.gztar xf LibreOffice_6.4.6_Linux_x86-64_deb.tar.gzsudo dpkg -i LibreOffice_6.4.6.2_Linux_x86-64_deb/DEBS/*.debtar xf LibreOffice_6.4.6_Linux_x86-64_deb_langpack_zh-CN.tar.gzsudo dpkg -i LibreOffice_6.4.6.2_Linux_x86-64_deb_langpack_zh-CN/DEBS/*.deb字体wget https://mirrors.tuna.tsinghua.edu.cn/adobe-fonts/source-han-serif/SubsetOTF/SourceHanSerifCN.zipwget https://mirrors.tuna.tsinghua.edu.cn/adobe-fonts/source-han-sans/SubsetOTF/SourceHanSansCN.zipunzip SourceHanSansCN.zipunzip SourceHanSerifCN.zipsudo cp -r SourceHanSansCN /usr/share/fonts/sudo cp -r SourceHanSerifCN /usr/share/fonts/sudo apt install fontconfigfc-cache -fv其它依赖sudo apt install -y openjdk-8-jdk libxinerama1 libcairo2 libcups2 libsm6使用(word转pdf)libreoffice6.4 --invisible --convert-to pdf input.docx --outdir .
2023年02月13日
206 阅读
0 评论
0 点赞
2023-02-13
ubuntu怎么切换到root用户,切换到root账号方法
ubuntu怎么切换到root用户,我们都知道使用su root命令,去切换到root权限,此时会提示输入密码,可是怎么也输不对,提示“Authentication failure”,此时有两种情况一个是真的是密码错了,另一种就是刚安装好的Linux系统,没有给root设置密码。打开Ubuntu,输入命令:su root,回车提示输入密码,怎么输入都不对步骤1:给root用户设置密码:命令:sudo passwd root输入密码,并确认密码。步骤2:重新输入命令:su root然后输入密码:发现可以切换到root权限了。步骤3:使用su xyx命令,切换到普通用户。
2023年02月13日
122 阅读
0 评论
0 点赞
1
2
3
4