日常小脚本沉淀(不定时更新)

Shell脚本

1、颜色输出

#!/bin/bash

# 定义颜色变量
red='\033[0;31m'
yellow='\033[1;33m'
blue='\033[0;34m'
green='\033[0;32m'
NC='\033[0m' # No Color

# 彩色文字输出函数
function echo_color()
{
    # 循环读取参数
    for ((i=1; i<=$#; i+=2)); do
        color=${!i}
        content=$(($i + 1))
        echo -e -n "${!color}${!content}${NC} "
    done
    echo;
}
echo_color blue 蓝色输出 red 红色输出


2、mysql数据库自动备份脚本

#!/bin/bash

# 设置变量
MYSQL_PWD="/opt/mysql/bin"
#最小备份用户权限
#GRANT SELECT, PROCESS, LOCK TABLES, SHOW VIEW, EVENT, TRIGGER ON *.* TO `test1`@`%`;flush priviledges;
DB_USER="test1"
DB_PASSWORD="123456"
BACKUP_PATH="/root/mysql_backup/`date +%F_%T`"
DB_HOST="192.168.56.101"
DB_PORT="3306"
DAYS_TO_KEEP=15

# 获取所有数据库名
databases=`${MYSQL_PWD}/mysql -u$DB_USER -p$DB_PASSWORD -h $DB_HOST -P $DB_PORT -e "SHOW DATABASES;" | grep -Ev "Database|mysql|sys|_schema"`

# 检查备份路径是否存在,如果不存在则创建
if [ ! -d "$BACKUP_PATH" ]; then
  mkdir -p "$BACKUP_PATH"
fi

# 删除15天之前的文件
find "$BACKUP_PATH" -mtime +$DAYS_TO_KEEP -exec rm -f {} \;

# 对每个数据库进行全量备份
for db in $databases; do
  backup_file="$BACKUP_PATH/$db-$(date +%Y%m%d).sql"
  #mysqldump -u$DB_USER -p$DB_PASSWORD -h $DB_HOST -P $DB_PORT --all-databases > "$backup_file"
  #${MYSQL_PWD}/mysqldump -u$DB_USER -p$DB_PASSWORD -h $DB_HOST -P $DB_PORT $db | gzip > "${backup_file}.gz"
  ${MYSQL_PWD}/mysqldump -u$DB_USER -p$DB_PASSWORD -h $DB_HOST -P $DB_PORT $db | pigz -k > "${backup_file}.gz"
done

crontab定时执行


3、自动配置ssh免密登录

#!/bin/bash

set -e

input_file=input.txt
secretKey=~/.ssh/id_rsa
publicKey=${secretKey}.pub

# 定义颜色变量
red='\033[0;31m'
yellow='\033[1;33m'
blue='\033[0;34m'
green='\033[0;32m'
NC='\033[0m' # No Color

# 彩色文字输出函数
function echo_color()
{
    # 循环读取参数
    for ((i=1; i<=$#; i+=2)); do
        color=${!i}
        content=$(($i + 1))
        echo -e -n "${!color}${!content}${NC} "
    done
    echo;
}

#判断secretKey是否存在
#if [ ! -d `dirname $secretKey` ];then
#    mkdir -p `dirname $secretKey`
#    chmod 700 `dirname $secretKey`
#    touch $secretKey
#elif [ ! -f $secretKey ];then
#    touch $secretKey
#fi

#生成密钥
echo_color "blue" "请按提示输入..."
read -p "是否需要在免密后完成后删除${input_file}(y/n):" yyy
ssh-keygen -t RSA -N '' -f $secretKey

# 读取文本文件内容
while read -r username password ip_address port; do
  echo_color "blue" "************正在配置 $username@$ip_address 的免密登录...************"
  #sshpass -p "$password" ssh-copy-id -f -i "${publicKey}" -o StrictHostKeyChecking=no -p "$port" "$username@$ip_address" 1>/dev/null
  sshpass -p "$password" ssh-copy-id -f -i "${publicKey}" -o StrictHostKeyChecking=no -p "$port" "$username@$ip_address"
done < $input_file

ip=`awk '{print $3}' < $input_file`
ips=${ip[*]}
case $yyy in
    [yY]|[yY][eE][sS])
        rm -f $input_file
        echo_color "green" "${ips}免密已配置完成, ${input_file}文件已删除"
        ;;
    *)
        echo_color "yellow" "${ips}免密已配置完成, ${input_file}文件未删除,为避免密码信息泄露,建议手动删除该文件"
esac
##登录
##ssh -i ${publicKey} -p ${port} 'username'@'ip_address'
input.txt样式
root 123456 192.168.56.101 22
test abc123 192.268.56.200 55555

Python脚本

1、pdf转word

from pdf2docx import Converter


def convert_pdf_to_word(pdf_file, docx_file):
    # 创建一个PDF到Word的转换器对象  
    conv = Converter(pdf_file)

    # 启动转换器并将输出保存到Word文件  
    with open(docx_file, 'wb') as outfile:
        while conv.convert(outfile, start=0, end=None):
            pass

            # 关闭转换器
    conv.close()


def main():
    pdf_file = 'input.pdf'  # 替换为你的PDF文件路径
    docx_file = 'output.docx'  # 输出的Word文件名和路径  
    convert_pdf_to_word(pdf_file, docx_file)
    print("转换完成!")


if __name__ == "__main__":
    main()
  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值