• 检测 Web 服务器
  • 备份数据库
  • 获取文件名
  • 获取文件扩展名
  • 重命名文件

    检测 Web 服务器

    新建文件 vim ~/http.sh 写入以下内容

    1. #!/bin/bash
    2. ip=xxxxxx #自定义
    3. port=$(nmap -sT $ip | grep tcp | grep http | grep 80 | awk '{print $2}')
    4. if [ "$port" == "" ]; then
    5. systemctl restart nginx
    6. echo "http error $(date +%Y-%m-%d' '%H:%M:%S)" >> ~/http_logs_error.log
    7. fi

    设置定时任务

    1. */10 * * * * ~/http.sh #10分钟执行一次

    备份数据库

    新建文件 vim ~/mysqldump.sh 写入以下内容

    1. #!/bin/bash
    2. dir=~/data_bak #自定义
    3. filename=demo #自定义
    4. username=nick #自定义
    5. password=xxx #自定义
    6. database=demo #自定义
    7. if [ -d $dir ]; then
    8. mysqldump -u$username -p$password $database | gzip > $dir/$filename\_$(date +%Y%m%d).sql.gz
    9. else
    10. mkdir $dir
    11. mysqldump -u$username -p$password $database | gzip > $dir/$filename\_$(date +%Y%m%d).sql.gz
    12. fi

    设置定时任务

    1. 1 3 * * 0 ~/mysqldump.sh # 每周日凌晨3点1分执行

    补充:新建的 shell 脚本默认没有执行权限,需要自己添加


    获取文件名

    1. #!/bin/bash
    2. file_jpg="sample.jpg"
    3. name=${file_jpg%.*}
    4. echo File name is: $name

    获取文件扩展名

    1. #!/bin/bash
    2. file="sample.png.text"
    3. echo ${file##*.} #贪婪模式,匹配到最后一个 .

    重命名文件

    1. #!/bin/bash
    2. count=1;
    3. for file in $(find . -maxdepth 1 -type f -iname '*.html')
    4. do
    5. new_file=filename-$count.${file##*.}
    6. echo "Renaming $file to $new_file"
    7. mv "$file" "$new_file"
    8. let count++
    9. done