linux 定时任务

  1. 编写shell脚本

#!/bin/bash

# 连接 MySQL 数据库的用户名和密码
DB_USER="root"
DB_PASS="Ytxzs123456."

# 数据库主机名或 IP 地址
HOSTNAME="127.0.0.1"

# 需要备份的数据库名称
DB_NAME="curtain_aide"

# 备份文件保存路径
BACKUP_DIR="/home/work/dbBackup"

# 备份文件名前缀
PREFIX="db-backup"

# 保留最新的 N 个备份文件,删除其他旧备份
MAX_BACKUPS=60

# 创建备份目录(如果不存在)
# mkdir -p $BACKUP_DIR

# 生成备份文件名
BACKUP_FILENAME=${PREFIX}-$(date +%F-%H-%M-%S).sql.gz

# 使用 mysqldump 命令导出数据库,并压缩保存到备份目录下
/usr/bin/mysqldump --opt --single-transaction --user="$DB_USER" \
--password="$DB_PASS" --host="$HOSTNAME" "$DB_NAME" | gzip > ${BACKUP_DIR}/${BACKUP_FILENAME}

# 列出所有数据库备份文件并按创建时间降序排序,以准备执行删除旧备份的操作
ALL_BACKUPS=($(ls -t ${BACKUP_DIR}/${PREFIX}*.sql.gz))

# 计算需要保留的最新备份文件数
NUM_BACKUPS=${#ALL_BACKUPS[@]}

# 删除超出指定数量的旧备份文件
if [ $NUM_BACKUPS -gt $MAX_BACKUPS ]; then
  NUM_DELETED=$((NUM_BACKUPS - MAX_BACKUPS))
  for ((i=0; i<$NUM_DELETED; i++)); do
    rm ${ALL_BACKUPS[${MAX_BACKUPS}+${i}]}
  done
fi
  1. 修改配置文件
    crontab -e : 编辑定时任务(用户可以省略,默认是当前用户)
    crontab -l : 查看定时任务(只查看当前用户的定时任务)
#  输入以下内容    每天早上凌晨1点整 执行  相应的脚本
0 1 * * * /bin/bash /home/work/backup.sh

参考 大神博客

你可能感兴趣的:(linux,服务器)