分类 Linux 下的文章

监测linux负载过高时重启php脚本

#!/bin/sh
TOP_SYS_LOAD_NUM=5
SYS_LOAD_NUM=`uptime | awk '{print $(NF-2)}' | sed 's/,//'`

echo $(date +"%y-%m-%d") `uptime`
if [ `echo "$TOP_SYS_LOAD_NUM < $SYS_LOAD_NUM"|bc` -eq 1 ]
then
echo "#0#" $(date +"%y-%m-%d %H:%M:%S") "pkill php-fpm" `ps -ef | grep php-fpm | wc -l`
/etc/init.d/php-fpm stop
sleep 8
pkill php-fpm
sleep 8
for i in 1 2 3
do
if [ `pgrep php-fpm | wc -l` -le 0 ]
then
/etc/init.d/php-fpm start
sleep 30
echo "#1#" $(date +"%y-%m-%d %H:%M:%S") "start php-fpm" `ps -ef | grep php-fpm | wc -l`
fi
done
else
if [ `pgrep php-fpm | wc -l` -le 0 ]
then
/etc/init.d/php-fpm start
sleep 30
echo "#2#" $(date +"%y-%m-%d %H:%M:%S") "start php-fpm" `ps -ef | grep php-fpm | wc -l`
fi
fi

定时执行

*/5 * * * * /root/check-php.sh >>/var/log/check-php.log

Linux自动备份网站文件和MySQL数据到远程服务器

本地生成备份

创建备份文件夹

mkdir -p /home/bakup

创建本地备份脚本文件

vi /root/bakup.sh

写入:

#打包网站文件
tar zcvpf /home/backup/blog-`date +%Y%m%d%H%M`.tar.gz /home/wwwroot/2dan.cc/* --exclude={'list','view','news'}

#导出数据库至独立文件
databases=`mysql --user=root -p123456 -e "show databases;" | grep -Ev "(Database|mysql|information_schema|performance_schema)"`
for db in $databases; do
  mysqldump -uroot -p123456 --lock-tables=false --databases $db | gzip > "/home/bakup/$db-`date +%Y%m%d%H%M`.sql.gz"
done
#删除3天前的备份
find /home/backup/  -name "*.gz" -type f -ctime  +3 | xargs rm -rf

- 阅读剩余部分 -

CentOS7安装OpenSSL1.1.1s

https://www.openssl.org/source/openssl-1.1.1s.tar.gz
tar -xzf openssl-1.1.1s.tar.gz
cd openssl-1.1.1s
./config --prefix=/usr
make && make install
ldconfig

查看当前版本

openssl version

OpenSSL 1.1.1s  1 Nov 2022

CentOS升级CMake

cd /usr/local/
wget https://github.com/Kitware/CMake/releases/download/v3.24.2/cmake-3.24.2-linux-x86_64.tar.gz
tar zxf cmake-3.24.2-linux-x86_64.tar.gz
mv cmake-3.24.2-linux-x86_64 cmake
mv /usr/bin/cmake /usr/bin/cmake.backup
ln -sf /usr/local/cmake/bin/cmake /usr/bin/cmake

Cannot find a valid baseurl for repo: epel

 One of the configured repositories failed (Unknown),
 and yum doesn't have enough cached data to continue. At this point the only
 safe thing yum can do is fail. There are a few ways to work "fix" this:

     1. Contact the upstream for the repository and get them to fix the problem.

     2. Reconfigure the baseurl/etc. for the repository, to point to a working
        upstream. This is most often useful if you are using a newer
        distribution release than is supported by the repository (and the
        packages for the previous distribution release still work).

     3. Run the command with the repository temporarily disabled
            yum --disablerepo=<repoid> ...

     4. Disable the repository permanently, so yum won't use it by default. Yum
        will then just ignore the repository until you permanently enable it
        again or use --enablerepo for temporary usage:

            yum-config-manager --disable <repoid>
        or
            subscription-manager repos --disable=<repoid>

     5. Configure the failing repository to be skipped, if it is unavailable.
        Note that yum will try to contact the repo. when it runs most commands,
        so will have to try and fail each time (and thus. yum will be be much
        slower). If it is a very temporary problem though, this is often a nice
        compromise:

            yum-config-manager --save --setopt=<repoid>.skip_if_unavailable=true

Cannot find a valid baseurl for repo: epel

到处找原因,发现原因其实就是某一个repository不能用。
最后发现可能的原因是运行了yum install epel-release, 其实问题就出在这...
解决方案是

yum remove epel-release
yum update
yum install epel-release