首页
关于
留言
Search
1
红米 AX3000 (AX6) 路由器解锁 SSH 教程
6,676 阅读
2
网盘挂载程序sharelist美化教程
4,216 阅读
3
小米路由器 AX3600 开启SSH教程,官方固件即可安装 ShellClash开启科学上网
2,168 阅读
4
Oracle 甲骨文 ARM VPS 自动抢购脚本
1,819 阅读
5
编译带PassWall和SSR-plus插件的Openwrt系统
1,393 阅读
前端
Vue
React
后端
Java
Python
PHP
数据库
运维
杂谈
小程序
影视资源
登录
Search
标签搜索
Java
Linux
Mysql
IDEA
Debian
Docker
Springboot
CentOS
Cloudflare
Maven
JavaScript
SQL
Wordpress
宝塔
Nginx
Windows
MacBook
JS
CSS
Openwrt
William
累计撰写
144
篇文章
累计收到
702
条评论
首页
栏目
前端
Vue
React
后端
Java
Python
PHP
数据库
运维
杂谈
小程序
影视资源
页面
关于
留言
搜索到
49
篇与
的结果
2022-02-22
9 个非常实用的 shell 脚本
1、Dos攻击防范(自动屏蔽攻击 IP)#!/bin/bash DATE=$(date +%d/%b/%Y:%H:%M) LOG_FILE=/usr/local/nginx/logs/demo2.access.log ABNORMAL_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 fi done2、Linux 系统发送告警脚本# yum install mailx # vi /etc/mail.rc set from=baojingtongzhi@163.com smtp=smtp.163.com set smtp-auth-user=baojingtongzhi@163.com smtp-auth-password=123456 set smtp-auth=login3、MySQL 数据库备份单循环#!/bin/bash DATE=$(date +%F_%H-%M-%S) HOST=localhost USER=backup PASS=123.com 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_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 备份失败!" fi done4、MySQL 数据库备份多循环#!/bin/bash DATE=$(date +%F_%H-%M-%S) HOST=localhost USER=backup PASS=123.com 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 done5、Nginx 访问访问日志按天切割#!/bin/bash LOG_DIR=/usr/local/nginx/logs YESTERDAY_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 /var/run/nginx.pid)6、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=$1 echo "统计访问最多的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]}}'7、查看网卡实时流量脚本#!/bin/bash NIC=$1 echo -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 done8、服务器系统配置初始化脚本#/bin/bash # 设置时区并同步时间 ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime if ! crontab -l |grep ntpdate &>/dev/null ; then (echo "* 1 * * * ntpdate time.windows.com >/dev/null 2>&1";crontab -l) |crontab fi # 禁用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 firewalld elif 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 65535 EOF fi # 系统内核优化 cat >> /etc/sysctl.conf << EOF net.ipv4.tcp_syncookies = 1 net.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 if9、监控 100 台服务器磁盘利用率脚本#!/bin/bash HOST_INFO=host.info 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
2022年02月22日
39 阅读
0 评论
0 点赞
2022-01-08
苹果maccms使用免费Cloudflare CDN加速自定义缓存规则的设置方法
苹果CMS使用免费Cloudflare CDN加速自定义缓存规则的设置方法首先登陆 Cloudflare 网站登陆地址: https://dash.cloudflare.com/login 登录后选择你的域名选择下图圈中选项! 依次选择 Greate Page Rule 按钮,添加下图规则!前台规则后台规则
2022年01月08日
315 阅读
2 评论
0 点赞
2021-12-31
宝塔面板安装指定历史版本教程-宝塔版本回退教程
使用宝塔官方一键命令,直接搭建出来的是最新版的宝塔。但是,很多时候我们需要使用低版本的,这个时候就没有办法直接使用一键命令来搭建了。下面就讲讲怎么安装指定历史版本宝塔面板。一、版本合集https://download.bt.cn/install/update/LinuxPanel-7.7.0.ziphttps://download.bt.cn/install/update/LinuxPanel-7.6.0.ziphttps://download.bt.cn/install/update/LinuxPanel-7.5.2.ziphttps://download.bt.cn/install/update/LinuxPanel-7.5.1.ziphttps://download.bt.cn/install/update/LinuxPanel-7.4.8.ziphttps://download.bt.cn/install/update/LinuxPanel-7.4.7.ziphttps://download.bt.cn/install/update/LinuxPanel-7.4.6.ziphttps://download.bt.cn/install/update/LinuxPanel-7.4.5.zip(会有绑定提醒)https://download.bt.cn/install/update/LinuxPanel-7.4.3.ziphttps://download.bt.cn/install/update/LinuxPanel-7.4.2.zip (有pma漏洞)https://download.bt.cn/install/update/LinuxPanel-7.4.0.ziphttps://download.bt.cn/install/update/LinuxPanel-7.3.0.ziphttps://download.bt.cn/install/update/LinuxPanel-7.2.0.ziphttps://download.bt.cn/install/update/LinuxPanel-7.1.1.ziphttps://download.bt.cn/install/update/LinuxPanel-7.1.0.ziphttps://download.bt.cn/install/update/LinuxPanel-7.0.3.ziphttps://download.bt.cn/install/update/LinuxPanel-7.0.2.ziphttps://download.bt.cn/install/update/LinuxPanel-7.0.1.ziphttps://download.bt.cn/install/update/LinuxPanel-6.9.9.ziphttps://download.bt.cn/install/update/LinuxPanel-6.9.8.ziphttps://download.bt.cn/install/update/LinuxPanel-6.9.7.ziphttps://download.bt.cn/install/update/LinuxPanel-6.9.6.ziphttps://download.bt.cn/install/update/LinuxPanel-6.9.5.ziphttps://download.bt.cn/install/update/LinuxPanel-6.9.2.ziphttps://download.bt.cn/install/update/LinuxPanel-6.8.5.ziphttps://download.bt.cn/install/update/LinuxPanel-6.8.4.ziphttps://download.bt.cn/install/update/LinuxPanel-6.8.3.ziphttps://download.bt.cn/install/update/LinuxPanel-6.8.2.ziphttps://download.bt.cn/install/update/LinuxPanel-6.6.6.ziphttps://download.bt.cn/install/update/LinuxPanel-6.5.0.ziphttps://download.bt.cn/install/update/LinuxPanel-6.4.0.ziphttps://download.bt.cn/install/update/LinuxPanel-6.3.0.ziphttps://download.bt.cn/install/update/LinuxPanel-6.2.0.ziphttps://download.bt.cn/install/update/LinuxPanel-6.1.0.ziphttps://download.bt.cn/install/update/LinuxPanel-5.9.2.ziphttps://download.bt.cn/install/update/LinuxPanel-5.9.1.zip(目前仍然很多人在用的版本)https://download.bt.cn/install/update/LinuxPanel-5.9.0.ziphttps://download.bt.cn/install/update/LinuxPanel-5.2.0.ziphttps://download.bt.cn/install/update/LinuxPanel-5.0.0.ziphttps://download.bt.cn/install/update/LinuxPanel-4.9.0.ziphttps://download.bt.cn/install/update/LinuxPanel-4.8.0.ziphttps://download.bt.cn/install/update/LinuxPanel-4.7.0.ziphttps://download.bt.cn/install/update/LinuxPanel-4.6.0.ziphttps://download.bt.cn/install/update/LinuxPanel-4.5.0.ziphttps://download.bt.cn/install/update/LinuxPanel-4.4.0.ziphttps://download.bt.cn/install/update/LinuxPanel-4.3.0.ziphttps://download.bt.cn/install/update/LinuxPanel-4.2.0.ziphttps://download.bt.cn/install/update/LinuxPanel-4.1.0.ziphttps://download.bt.cn/install/update/LinuxPanel-4.0.0.ziphttps://download.bt.cn/install/update/LinuxPanel-3.9.0.ziphttps://download.bt.cn/install/update/LinuxPanel-3.8.0.ziphttps://download.bt.cn/install/update/LinuxPanel-3.7.0.ziphttps://download.bt.cn/install/update/LinuxPanel-3.5.0.zip二、安装方法1、先使用官方命令正常进行宝塔安装ubuntu, debian, deepinwget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh2、根据官方手动升级/降级方法进行覆盖安装1、下载离线升级包,并将升级包上传到服务器中的/root目录 2、unzip LinuxPanel-* #解压文件 3、cd panel #切换到升级包目录 4、bash update.sh #执行升级脚本 5、cd .. && rm -f LinuxPanel-*.zip && rm -rf panel #删除升级包3、覆盖安装后如果出现登录用户名、密码错误无法登陆时,可以使用以下命令重置密码cd /www/server/panel && python tools.py panel yourpasswd4、为了更安全起见,可以执行以下内容,避免一些问题~~ (非必需)echo '127.0.0.1 bt.cn' >>/etc/hosts
2021年12月31日
73 阅读
0 评论
0 点赞
2021-12-24
Debian11使用开机自启动脚本
因为搞阿里云盘的 webdav,用的是 Java 环境,最后想让 jar 包开机自启动,但是因为是 Debian11,进去 etc 目录发现没有 rc.local文件。反倒有好几个 rcx.local。在低版本的debian系linux系统中,增加开机自启脚本比较简单,直接修改 /etc/rc.local 文件,在 exit 0 之前增加需要运行的脚本即可。但是现在在高版本的linux中默认没有开启该功能,接下来我们通过设置来开启该功能。1、首先,我们到 /lib/systemd/system 目录下cd /lib/systemd/system2、在该目录下,可以发现有个 rc-local.service 文件,使用文本编辑器,在最后加上下列信息即可。隐藏内容,请前往内页查看详情3、由于没有 /etc/rc.local 文件,所以我们需要手动创建它,并写入以下信息#!/bin/sh -e # 在这里输入需要自启的脚本 exit 04、创建完成后需要给其赋予运行权限chmod +x /etc/rc.local5、启动该服务sudo systemctl enable rc-local # 启用 sudo systemctl start rc-local.service # 开始运行 sudo systemctl status rc-local.service # 查看状态这个时候,我们的开机自启服务就完成了。
2021年12月24日
94 阅读
0 评论
0 点赞
2021-12-17
linux突然所有命令都失效了,显示bash: xxxxx: command not found
今天登陆了一台日本的服务器配置OCI的,然后修改了下 /etc/profile 文件,由地方弄错了,然后就出现了,输入什么命令都是 command not found。想要重启 reboot 不行,ls 也不行。出现这个问题是因为系统的环境变量没有正确配置造成的,造成这个原因有很多,比如系统升级,比如不正当操作。解决的方式有两种。1、直接在linux命令行界面输入如下,然后回车(导入环境变量,以及shell常见的命令的存放地址):export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin2、如果系统所有命令都不能使用时,还可以使用绝对命令vi打开profile,想William这情况的话,把刚才改了的有问题的地方全删了就可以了。(其实,如果这里有问题的地方没删除或者说没有改成正确的话,即使用了第一种方法,等会你退出登陆以后,再进来还是那种not found的情况的,所以说这里一定是要改的)/bin/vi /etc/profile在系统的配置文件里添加环境变量地址export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
2021年12月17日
33 阅读
0 评论
0 点赞
2021-10-08
Mac使用brew安装Nginx启动并配置多站点
安装brew update && brew install nginx默认安装到 /usr/local/etc/nginx/nginx.conf常用指令查看安装信息(经常用到, 比如查看安装目录等)brew info nginx启动brew services start nginx查看 nginx 进程ps aux | grep nginx # 或者 ps -ef | grep nginx退出nginx -s quit重启nginx -s reload测试 nginx.conf 配置路径nginx -t停止nginx -s stopquit:相当于发送SIGQUIT信号,等待nginx工作线程完成才退出,很友好stop:相当于发送SIGTERM信号,要你强制退出。多站点配置在nginx的配置文件conf目录下创建一个专门存放vhost的目录sudo mkdir /usr/local/etc/nginx/vhost在里面创建站点的配置文件,格式:xxx.conf。比如创建了 siteA.conf, siteB.conf打开nginx.conf文件sudo vim /etc/nginx/nginx.conf将刚才创建的虚拟目录(vhost)的配置文件加入 http {} 部分的末尾http { ... include /etc/nginx/vhost/*.conf; }{message type="warning" content="有一丁点改动过nginx配置文件,都要第一时间重启,否则很有可能无法使用"/}
2021年10月08日
41 阅读
0 评论
0 点赞
2021-09-25
解决苹果CMS v10因豆瓣图片防盗链导致无法正常显示图片问题
找到如图所示附件参数配置,填写好接口和标识即可。 并在CMS根目录创建一个反盗链接口文件命名为 img.php 即可解决豆瓣图片无法正常显示的问题。<?php error_reporting(E_ERROR | E_PARSE ); @ini_set('max_execution_time', '0'); @ini_set("memory_limit",'-1'); $url = $_GET["url"]; if (!empty($url) && substr($url,0,4)=='http') { $dir = pathinfo($url); $host = $dir['dirname']; $ext = $dir['extension']; $refer = $host.'/'; $ch = curl_init($url); curl_setopt ($ch, CURLOPT_REFERER, $refer); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 15); curl_setopt($ch, CURLOPT_TIMEOUT, 30); curl_setopt($ch, CURLOPT_HEADER,0); curl_setopt($ch, CURLOPT_POST, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1); curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1); $data = @curl_exec($ch); curl_close($ch); $types = array( 'gif'=>'image/gif', 'jpeg'=>'image/jpeg', 'jpg'=>'image/jpeg', 'jpe'=>'image/jpeg', 'png'=>'image/png', ); $type = $types[$ext] ? $types[$ext] : 'image/jpeg'; header("Content-type: ".$type); echo $data; }
2021年09月25日
335 阅读
0 评论
0 点赞
2021-09-24
Linux 系统添加和删除 Swap 交换文件
简介Linux 系统中的 Swap 分区,即交换分区,类似于 Windows 的虚拟内存,其作用可简单的描述为:当系统的物理内存不够用的时候,将暂时不用的数据存放到交换空间所在的硬盘上,从而可以腾出内存来让别的程序运行。在这里不讨论直接划出一部分硬盘作为交换分区的情况,只介绍通过添加 Swap 文件来设置交换分区的方式。添加 Swap 文件随便进入一个目录用于后续存放 Swap 文件,也可以直接放在根目录,这里放在 /var 目录下。cd /var使用 dd 命令生成一个文件块,大小为自己想设置的 Swap 分区大小,这里生成一个名为 swapfile 的文件,大小设为 1G。dd if=/dev/zero of=swapfile bs=1M count=1024将该文件设为 Swap 文件(格式化)。mkswap swapfile激活 Swap 文件(启用虚拟内存)。swapon swapfile检查 Swap 是否正确。swapon -s另外为了安全建议将交换分区文件权限设为 0600 或 0644 ,执行以下命令。chmod 0600 swapfile此时已经成功添加了交换分区,可以使用 free 之类的命令查看验证。但这样重启后 Swap 分区会丢失,需要重新激活才行,所以我们一般在 fstab 文件为其添加开机自动挂载设置。vi /etc/fstab在最后增加以下内容:/var/swapfile swap swap defaults 0 0也可以直接执行如下命令来添加,与直接编辑fstab文件效果一样:echo "/var/swapfile swap swap defaults 0 0" >> /etc/fstab删除 Swap 文件这里以我们上面设置的 Swap 文件(文件名、文件路径)作为示范。首先将 Swap 文件取消激活:swapoff /var/swapfile然后删除我们设置的 Swap 文件:rm /var/swapfile最后再编辑 /fstab 文件删除掉自动挂载 Swap 的设置即可:vi /etc/fstab
2021年09月24日
34 阅读
0 评论
0 点赞
1
2
3
...
7