# shell_script **Repository Path**: 1024335892/shell_script ## Basic Information - **Project Name**: shell_script - **Description**: 常用的整理好的shell脚本文件 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-07-26 - **Last Updated**: 2025-11-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 脚本的作用 - mysql_find_psw.sh是mysql找回密码的脚本 - mysql_install.sh是mysql独立安装的脚本 - nginx_install.sh是nginx独立安装的脚本 - nginx是nginx开机自动启动的脚本 - php_install.sh是php独立安装的脚本 - https_auto 是生成免费版的https - market,seo是网站部署的自动脚本 - htop_s.sh是安装top的系统进程的工具 - kill_virus.sh杀挖矿的病毒(kdevtmpfsi),通过计时器处理(需要安装killall) - innobackupex.sh是mysql的备份操作,作一个分钟增量备份 - backupOne.sh是备份数据的一个参考使用的脚本(待验证) - innobackupex_one_day.sh备份数据库,一天一备份还原(待处理恢复和删除日志记录) - iptables_web.sh添加针对web的iptables的规则的防火墙的脚本 - mysql_bak.sh数据库的备份(待验证) - mysql_stauts.sh监听mysql是否自动挂起(bash ./mysql_stauts.sh >/dev/null &)进行启动,本地虚拟机环境不能发送邮箱(可以找方案去解决) - tcp_num.sh ip的连接数 - mariadb_install.sh添加mariadb的安装**待验证,启动,my.cnf的处理** - DDoS.sh添加DDOS的防御脚本 - check_env集群的环境批量检查 - ansible_mount_disk是ansible的自动挂载外部磁盘 - ansible_env是ansible的初始集群服务器的环境检测 - ansible_mysql_master_slave是ansible的主从配置的完成度为一半可基于此继续完善再使用 - more_host_java_env多主机配置java+zookeeper+scala+kafka的环境 - more_host_service_start_stop_status是多主机对服务的启动,停止,状态的查看 - show_mysql_log.sh是mysql的日志收集 - php8_install.sh是php8.1.x的安装的脚本 - turnserver.sh是stun/turn安装配置(coturn) - gcc5.3.0.sh是手动升级gcc版本到5.3.0 - auto_deny_ip.sh在nginx中自动禁止ip访问 - mongoDB.sh是mongoDB的安装脚本 - generateSSL.sh通过openssl自建证书 - http_detection.sh获取https的信息 - git_export_incremental_update文件夹是git的hash区间更新文件的导出,及增量更新项目中的文件 ## 以守护进程运行shell ``` bash xxxx.sh >/dev/null 2>&1 < /dev/null & bash xxxx.sh >/dev/null & ``` ## 挂载外部的硬盘 - fdisk -l 找打外置盘 /dev/sdb - mkfs.ext4 /dev/sdb对目标磁盘进行格式化 其中sdb是找到的外置盘 - blkid /dev/sdb拿到硬盘的UUID - 创建外部数据盘的目录 mkdir /storage - vim /etc/fstab添加盘的数据信息 ``` 格式:加一行UUID=xxx 要挂载的目录 ext4 defaults 1 1 UUID=ae021ef4-ab67-476e-ac20-4b20d187111c /storage ext4 defaults 1 1 ``` - mount -a ## 安装好mysql需要配置下 - vim /etc/init.d/mysqld - basedir=/usr/local/mysql56 #是安装的mysql目录 - datadir=/usr/local/mysql56/data/mysql56 #是mysql数据存放的地方 - chmod a+x /etc/init.d/mysqld - service start mysqld(启动,重启,关闭的一系列操作) ## 配置nginx自启动的脚本的操作 - 将nginx的文件放到/etc/init.d/下 #将文件放到指定位置 - sed -i 's/\r$//' /etc/init.d/nginx #去除空格 - chmod a+x /etc/init.d/nginx #给任何用户以执行该文件的权限 - chkconfig --add /etc/init.d/nginx 添加到chkconfig中 - service nginx start #开始nginx - service nginx stop #停止nginx - chkconfig nginx on #添加到开机自启动 ## nginx和php-fpm的关联 ``` #备注fastcgi_pass的值是在/usr/local/php74/etc/php-fpm.d/www.conf中的listen location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; # include fastcgi_params; include fastcgi.conf; } ``` ## php的启动和关闭 - 关闭service php-fpm stop或者killall php-fpm (安装killall的指令:yum install psmisc -y) - 启动service php-fpm start - 端口被占用的情况(yum install net-tools -y)netstat -lntup | grep 9000 查看然后通过 killall 进程的名字(5155/php-fpm就是php-fpm) - 将php添加到环境变量中export PATH=$PATH:/usr/local/php/bin(路径作为参考),然后可在任何地方运行php指令了 ## 安装composer > 方式一 - cd /home - php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');" - php composer-setup.php - mv composer.phar /usr/bin/composer - 配置镜像su www切换用户,然后composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ - 取消配置:composer config -g --unset repos.packagist - (可操作)composer selfupdate - 出现ssl证书问题 ``` wget --no-check-certificate http://curl.haxx.se/ca/cacert.pem mkdir -p /usr/local/openssl/ssl/certs/ mv cacert.pem /usr/local/openssl/ssl/certs/cacert.pem #php.ini中配置 openssl.cafile=/usr/local/openssl/ssl/certs/cacert.pem ``` > 方式二 ``` curl -sS https://getcomposer.org/installer | php mv composer.phar /usr/local/bin/composer ln -s /usr/local/php/bin/php /usr/local/bin/php ``` ## 关闭php的请求缓存 - php -i |grep opcache 找到缓存的配置文件opcache.init - 将里面的配置都给屏蔽掉,然后重启php(service php-fpm restart) ## 启动的流氓的挖矿软件 - redis 6379配置不当导致的的流氓软件,需要加固 - killall kdevtmpfsi或者killall kinsing - find / -name kdevtmpfsi和find / -name kinsing 通rm -rf 路径将其删除 ## nginx中的站点配置 - thinkphp中隐藏入口 ``` location / { ... if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=/$1 last; break; } } ``` - uniapp中的代理的操作 ``` //uniapp中配置代理的地方,不要在devServer中使用pathRewrite location /api { proxy_pass http://a.52zhxy.cn; } location / { ... try_files $uri $uri/ /index.html; #通过history路由直接访问 } ``` ## 执行出现"\r"未找到 - yum install dos2unix -y - dos2unix **.sh - bash 进行执行即可 ## 其它的文档 - backup_db.md分布式数据库备份的参考思路