原文地址:在线工具

#!/bin/env bash
# =================================================
# Author: renwole.com               #
# See: https://renwole.com/archives/2215  #
# Description: MySQL automatic installation tool  #
# =================================================
export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin

Install_MySQL() {
    # CentOS 8 mysql: error while loading shared libraries: libncurses.so.5
    yum install ncurses ncurses-compat-libs -y
    # Install dependencies
    setenforce 0
    yum -y install epel-release
    yum -y install wget tar jemalloc jemalloc-devel gcc gcc-c++

    # MySQL configuration
    mysql_version="8.0.27"
    mysql_password="nd.mm#2021"
    mkdir -p /apps/server/mysql/data
    mysql_install_dir="/apps/server/mysql"
    mysql_data_dir="/apps/server/mysql/data"
    download_mysql="https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads"

    # Download MySQL
    cd /mnt
    useradd -M -s /sbin/nologin mysql >/dev/null 2>&1
    wget -c ${download_mysql}/MySQL-8.0/mysql-${mysql_version}-linux-glibc2.12-x86_64.tar.xz
    echo "========== Start installing MySQL ============"
    tar xJf mysql-${mysql_version}-linux-glibc2.12-x86_64.tar.xz
    \mv mysql-${mysql_version}-linux-glibc2.12-x86_64/* ${mysql_install_dir}
    
    if [[ -d "${mysql_install_dir}/support-files" ]]; then
        rm -rf mysql-${mysql_version}-linux-glibc2.12-x86_64
    else
        rm -rf ${mysql_install_dir}
        echo "Error: MySQL install failed, Please contact the author"
        kill -9 $$
    fi

    # Initialize the database
    ${mysql_install_dir}/bin/mysqld --initialize-insecure --user=mysql --lower-case-table-names=1 --basedir=${mysql_install_dir} --datadir=${mysql_data_dir}
    chown -R root . ${mysql_install_dir}
    chown -R mysql.mysql ${mysql_data_dir}
    \cp -f ${mysql_install_dir}/support-files/mysql.server /etc/init.d/mysqld
    sed -i "s@^basedir=.*@basedir=${mysql_install_dir}@" /etc/init.d/mysqld
    sed -i "s@^datadir=.*@datadir=${mysql_data_dir}@" /etc/init.d/mysqld
    sed -i "s@/usr/local/mysql@${mysql_install_dir}@g" ${mysql_install_dir}/bin/mysqld_safe
    sed -i 's@executing mysqld_safe@executing mysqld_safe\nexport LD_PRELOAD=/usr/lib64/libjemalloc.so@' ${mysql_install_dir}/bin/mysqld_safe
    echo 'PATH=$PATH:'${mysql_install_dir}'/bin' >/etc/profile.d/mariadb_renwole.com.sh

    # my.conf configuration
    cat > /etc/my.cnf << EOF
[client]
port = 3306
socket = /tmp/mysql.sock
default-character-set = utf8mb4

[mysql]
prompt="MySQL [\\d]> "
no-auto-rehash

[mysqld]
port = 3306
socket = /tmp/mysql.sock
default_authentication_plugin = mysql_native_password

basedir = ${mysql_install_dir}
datadir = ${mysql_data_dir}
pid-file = ${mysql_data_dir}/mysql.pid
user = mysql
bind-address = 0.0.0.0
server-id = 1

init-connect = 'SET NAMES utf8mb4'
character-set-server = utf8mb4
collation-server = utf8mb4_0900_ai_ci
lower-case-table-names = 1

skip-name-resolve
#skip-networking
back_log = 300

max_connections = 1000
max_connect_errors = 6000
open_files_limit = 65535
table_open_cache = 128
max_allowed_packet = 500M
binlog_cache_size = 1M
max_heap_table_size = 8M
tmp_table_size = 16M

read_buffer_size = 2M
read_rnd_buffer_size = 8M
sort_buffer_size = 8M
join_buffer_size = 8M
key_buffer_size = 4M

thread_cache_size = 8

ft_min_word_len = 4

log_bin = mysql-bin
binlog_format = mixed
binlog_expire_logs_seconds = 604800

log_error = ${mysql_data_dir}/mysql-error.log
slow_query_log = 1
long_query_time = 1
slow_query_log_file = ${mysql_data_dir}/mysql-slow.log

performance_schema = 0
explicit_defaults_for_timestamp

lower_case_table_names = 1

skip-external-locking

default_storage_engine = InnoDB
#default-storage-engine = MyISAM
innodb_file_per_table = 1
innodb_open_files = 500
innodb_buffer_pool_size = 64M
innodb_write_io_threads = 4
innodb_read_io_threads = 4
innodb_thread_concurrency = 0
innodb_purge_threads = 1
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 2M
innodb_log_file_size = 32M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120

bulk_insert_buffer_size = 8M
myisam_sort_buffer_size = 8M
myisam_max_sort_file_size = 10G
myisam_repair_threads = 1

interactive_timeout = 28800
wait_timeout = 28800

[mysqldump]
quick
max_allowed_packet = 500M

[myisamchk]
key_buffer_size = 8M
sort_buffer_size = 8M
read_buffer = 4M
write_buffer = 4M
EOF
    # Set up MySQL
    chmod 600 /etc/my.cnf
    chmod +x /etc/init.d/mysqld
    systemctl enable mysqld
      systemctl start mysqld
      ${mysql_install_dir}/bin/mysql -uroot -hlocalhost -e "create user root@'127.0.0.1' identified by \"${mysql_password}\";"
      ${mysql_install_dir}/bin/mysql -uroot -hlocalhost -e "grant all privileges on *.* to root@'127.0.0.1' with grant option;"
     ${mysql_install_dir}/bin/mysql -uroot -hlocalhost -e "grant all privileges on *.* to root@'localhost' with grant option;"
      ${mysql_install_dir}/bin/mysql -uroot -hlocalhost -e "alter user root@'localhost' identified by \"${mysql_password}\";"
      ${mysql_install_dir}/bin/mysql -uroot -p${mysql_password} -e "reset master;"
      rm -rf /etc/ld.so.conf.d/{mysql,mariadb,percona,alisql}*.conf
      echo "${mysql_install_dir}/lib" > /etc/ld.so.conf.d/mysql_renwole.com.conf
      ldconfig
      echo "========== MySQL installing Successfully ====="
      echo
    echo "=============================================="
    echo "    Thank you for using Renwole.com script"
    echo "=============================================="
    echo "MySQL:"
    echo "account: root"
    echo "password: ${mysql_password}"
    echo "database: ${mysql_data_dir}"
    echo "=============================================="
}

Install_MySQL
source /etc/profile

原文地址:在线工具

#!/usr/bin/env bash
yum install -y zlib-devel openssl openssl-devel
wget http://nginx.org/download/nginx-1.16.1.tar.gz
tar zxvf nginx-1.16.1.tar.gz
cd nginx-1.16.1
./configure --prefix=/usr/local/nginx
make && make install
cd ..
rm -rf nginx-*
echo "export PATH=\$PATH:/usr/local/nginx/sbin" >> /etc/profile
source /etc/profile
nginx

#开机启动
cat > /usr/lib/systemd/system/nginxd.service <<EOF
[Unit]
Description=nginx
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true

[Install]
WantedBy=multi-user.target
EOF
systemctl enable nginxd.service

记录win11查看以前连接过的wifi的密码

1.首先找到以前连接过wifi的名称, 以下命令可以列出以前连接过所有wifi名称信息

netsh wlan show profiles

2.查看所要查询wifi的密码, 把下面命令中的wifi名称修改为上面查询出来的wifi名称, 查询出来关键内容后面就是wifi密码

Netsh wlan show profile name="wifi名称" key=clear | find  "关键内容"

3.也可以查询wifi的详细信息

Netsh wlan show profile name="wifi名称" key=clear

css实现网站变灰代码

html {
    filter: grayscale(100%);
    -webkit-filter: grayscale(100%);
    -moz-filter: grayscale(100%);
    -ms-filter: grayscale(100%);
    -o-filter: grayscale(100%);
}

文章来源

1、中文截取:mb_substr()。

mb_substr(s t r , str,str,start,l e n g t h , length,length,encoding)
实例
echo mb_substr('这个真的很nice',0,3,'utf-8'); //输出这个真

2、英文截取:用substr()函数。如果截取的字符串是多个字节,就会出现乱码。

在utf8编码下,由于一个汉字占3个字节。

$str = 'hello';
echo substr($str,1,2);//输出el

3、$str[0],将字符串看做字符集合,中文不适用。

$str = 'hello';
echo $str[0];//输出h

php字符串的截取方式记录,方便以后忘记查询。

一、配置防火墙,开启80端口、3306端口

CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙。

  1. 关闭firewall:

     systemctl stop firewalld.service #停止firewall
     systemctl disable firewalld.service #禁止firewall开机启动
    
  2. 安装iptables防火墙

     yum install iptables-services #安装
     vim /etc/sysconfig/iptables #编辑防火墙配置文件
     :INPUT ACCEPT [0:0]
     :FORWARD ACCEPT [0:0]
     :OUTPUT ACCEPT [0:0]
     -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
     -A INPUT -p icmp -j ACCEPT
     -A INPUT -i lo -j ACCEPT IT网,http://www.it.net.cn
     -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
     -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
     -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
     -A INPUT -j REJECT --reject-with icmp-host-prohibited
     -A FORWARD -j REJECT --reject-with icmp-host-prohibited
     COMMIT
     :wq! #保存退出
     systemctl restart iptables.service #最后重启防火墙使配置生效
     systemctl enable iptables.service #设置防火墙开机启动
    

二、关闭SELINUX

vi /etc/selinux/config
#SELINUX=enforcing #注释掉
#SELINUXTYPE=targeted #注释掉
SELINUX=disabled #增加
:wq! #保存退出
setenforce 0 #使配置立即生效

目标

每天晚上12点备份网站所有文件和数据库,只保留最近5天的数据。
不做好数据备份,到时会死的很惨。

shell脚本

vim backup.sh

脚本内容

#!/bin/sh
#日期
rq=`date +%Y%m%d`
#我的备份目录是/apps/backup/,5是几天前的数据
find /apps/backup/ -name "*.sql" -mtime +5 |xargs rm -fr
find /apps/backup/ -name "*.tar.gz" -mtime +5 |xargs rm -fr
#需要先安装zip,yum install zip -y
zip -r /apps/backup/wordpress_koukou_$rq.tar.gz /apps/koukou/*
mysqldump -umysql用户名 -pmysql用户密码 -h 127.0.0.1  数据库名 > /apps/backup/koukou`date +%Y-%m-%d_%H%M%S`.sql

给脚本可执行权限

chmod 777 /backup.sh

计划任务

#我的脚本目录在/apps/backup/,每天凌晨23:59执行备份
59 23 * * * sh /apps/backup/backup.sh

<?php
use Carbon\CarbonPeriod;

$period = CarbonPeriod::create('2022-06-14', '2022-06-20');

// Iterate over the period
foreach ($period as $date) {
    echo $date->format('Y-m-d') ."\n";
}

//result
2022-06-14
2022-06-15
2022-06-16
2022-06-17
2022-06-18
2022-06-19
2022-06-20