首页 > 数据库 >Crontab定时任务更新SOLO以及备份数据库

Crontab定时任务更新SOLO以及备份数据库

时间:2024-07-10 10:09:46浏览次数:9  
标签:SOLO Crontab -- 备份 crontab sh usr mysql home

Linux定时执行任务Crontab

1. 安装Crontab

1.1 安装命令

 # vixie-cron软件包是cron的主程序
 yum install vixie-cron

 # crontabs软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序
 yum install crontabs

1.2 启动命令

# 启动服务
/sbin/service crond start
# 关闭服务
/sbin/service crond stop
#重启服务
/sbin/service crond restart
#重新载入配置
/sbin/service crond reload

1.3 查看相关状态

# 查看服务状态
service crond status
# 手动启动服务
service crond start

1.4 开机自启

chkconfig --level 35 crond on

2. crontab使用

2.1 定时器规则

以下是一条定时器的规则

# 每天0时0分执行`/usr/home/mysql.sh`的文件,并将日志写入`/usr/home/mysql.log`
0 0 * * * /usr/home/mysql.sh >> /usr/home/mysql.log

crontab 文件的格式:

{minute} {hour} {day-of-month} {month} {day-of-week} {full-path-to-shell-script} 
  • minute:分钟,区间为0-59
  • hour:小时,区间为0-23
  • day-of-month:每月的日,区间为0–31;
  • month:区间为1–12;1是1月,12是12月;
  • day-of-week:区间为0–6;周日是0。

除了数字还有以下几个特殊的符号需要特殊说明:

  • *:代表所有的取值范围内的数字;
  • /:代表每的意思,”*/5″表示每5个单位;
  • -:代表从某个数字到某个数字;
  • ,:分开几个离散的数字

以下是部分定时器示例

# 每五分钟执行    
*/5 * * * * /usr/home/mysql.sh
# 每小时执行
0 * * * * /usr/home/mysql.sh
# 每天执行
0 0 * * * /usr/home/mysql.sh
# 每周执行
0 0 * * 0 /usr/home/mysql.sh
# 每月执行
0 0 1 * * /usr/home/mysql.sh
# 每年执行
0 0 1 1 * /usr/home/mysql.sh

# 每天早上6点
0 6 * * * /usr/home/mysql.sh
# 每两个小时
0 */2 * * * /usr/home/mysql.sh

# 晚上11点到早上8点之间每两个小时
0 23-7/2 * * * /usr/home/mysql.sh

# 1月1日早上4点
0 4 1 1 * /usr/home/mysql.sh

3. 定时更新博客

3.1 编写更新博客shell

#!/bin/bash

#
# Solo docker 更新重启脚本
#
# 1. 请注意修改参数
# 2. 可将该脚本加入 crontab,每日凌晨运行来实现自动更新
#

docker pull b3log/solo
docker stop solo
docker rm solo
docker run --detach  --name solo  --restart=on-failure:10  --network=host \
--env RUNTIME_DB="MYSQL" \
--env JDBC_USERNAME="root" \
--env JDBC_PASSWORD="123456" \
--env JDBC_DRIVER="com.mysql.cj.jdbc.Driver" \
--env JDBC_URL="jdbc:mysql://127.0.0.1:3306/blog?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC" \
b3log/solo  --listen_port=8081  --server_scheme=https  --server_host=blog.booleandev.xyz  --server_port=

在添加定时任务之前,可提前执行下该文件,看看是否能够更新成功

如果没有执行权限 则执行以下命令chmod 777 文件名

3.2 将shell添加到crontab定时任务中

# 打开crontab定时器文件
crontab -e

# 我的shell文件时放置于`/usr/local/soft/crontab/solo.sh`
# 将日志文件写于/usr/local/soft/crontab/solo.log
0 0 * * 0 /usr/local/soft/crontab/solo.sh >> /usr/local/soft/crontab/solo.log

# 等到时间,会自动执行,就可以看到solo.log文件内容

4. 定时备份mysql数据库

4.1 编写shell文件

#!/bin/bash

#获取当前时间
date_now=$(date "+%Y%m%d-%H%M%S")
# 备份文件夹目录
backUpFolder=/usr/local/soft/backup/mysql/blog
username="root"
password="123456"
db_name="solo"
#定义备份文件名
fileName="${db_name}_${date_now}.sql"
#定义备份文件目录
backUpFileName="${backUpFolder}/${fileName}"
echo "starting backup mysql ${db_name} at ${date_now}."
/usr/bin/mysqldump -u${username} -p${password}  --lock-all-tables --flush-logs ${db_name} > ${backUpFileName}
#进入到备份文件目录
cd ${backUpFolder}
#压缩备份文件
tar zcvf ${fileName}.tar.gz ${fileName}

4.2 将shell添加到crontab定时任务中

# 打开crontab定时器文件
crontab -e

# 我的shell文件时放置于`/usr/local/soft/crontab/solo.sh`
# 将日志文件写于/usr/local/soft/crontab/solo.log
0 0 * * * /usr/local/soft/crontab/mysql.sh >> /usr/local/soft/crontab/mysql.log

# 等到时间,会自动执行,就可以看到mysql.log文件内容

5. 参考链接

果冻想Linux定时执行任务Crontab

Galaxy' HomeCentOS安装crontab及使用方法

标签:SOLO,Crontab,--,备份,crontab,sh,usr,mysql,home
From: https://www.cnblogs.com/booleandev/p/18293309/crontab-timing-task-update-solo-and-backup-d

相关文章

  • K8s 无备份,不运维
    出故障时,就知道是谁在裸泳......
  • 备份和恢复
    mongodump备份mongodump从MongoDB数据库读取数据并创建高保真BSON文件,该mongorestore 工具可以使用该文件填充MongoDB数据库。 mongodump并且mongorestore是用于备份和恢复小型MongoDB部署的简单有效的工具,但并不适合捕获大型系统的备份。mongodump只捕获数据库中的文......
  • 备份脚本
    1.OracleRMAN备份1.1创建目录[oracle@OEL7~]$mkdir-p/u01/dbbak/script[oracle@OEL7~]$cd/u01/dbbak[oracle@OEL7~]$chown-Roracle:oinstallscript[oracle@OEL7~]$mkdir-p/u01/dbbak/db[oracle@OEL7~]$mkdir-p/u01/dbbak/arch[oracle@OEL7~]......
  • 备份脚本backup_log.sh、计划任务
    脚本+计划任务 = 解放了劳动力,提升效率--》实现了自动化操作编写一个脚本backup_log.sh实现备份/var/log目录下的所有日志文件到/backup目录下,要求文件名是包含当天日期,精确到秒,文件名例如:20240308151520-log.tar.gz。同时要求删除/backup目录下七天前的备份文件,只保留最......
  • SpringBoot使用jdbcTemplate连接人大金仓按月备份表
    方式一:采用SELECT*INTOFROM复制表数据以及结构到新表,再清空原表并重置序列代码如下:点击查看代码privatevoidpnsDataCopy(){log.info("{}===>表开始复制",PNS_TABLE);longl=System.currentTimeMillis();TransactionStatustransactionS......
  • iPhone备份数据恢复:三招搞定苹果数据恢复
    在使用iPhone的过程中,我们经常有重要的数据,如照片、联系人、短信等,通过备份功能存储在iCloud或iTunes中。这样无论是因为设备更换、数据意外删除,还是其他原因,都能从备份数据中恢复。下面小编将为大家提供3个从iphone备份中恢复数据的方法,有兴趣的小伙伴请接着往下看!方法一:通......
  • bat还原mssql数据库,可设置服务器 ip等相关信息,和备份路径
    以下是一个使用BAT脚本来还原MSSQL数据库,并设置服务器IP、用户名、密码以及备份路径的示例:bat@echooffsetSERVER_IP=127.0.0.1setUSERNAME=sasetPASSWORD=YourPasswordsetDATABASE_NAME=YourDatabaseNamesetBACKUP_PATH="C:\Backup\YourBackup.bak"sq......
  • 这些 PowerShell 命令适用于清理 Windows 中更多不同组件和服务的日志。通过定期执行
    清理临时文件:powershellCopyCodeRemove-Item-Path"$env:TEMP\*"-Force-RecurseRemove-Item-Path"$env:LOCALAPPDATA\Temp\*"-Force-Recurse清理回收站:powershellCopyCodeClear-RecycleBin-Force清理浏览器缓存(例如清理Chrome缓存):powershellCopy......
  • SQL Server 中用于备份数据库的 BACKUP 命令提供了多种选项和灵活性,主要包括以下几种:S
    SQLServer中用于备份数据库的BACKUP命令提供了多种选项和灵活性,主要包括以下几种:1.完整备份(FULL)完整备份将整个数据库备份到指定的备份介质(如磁盘或磁带)。语法如下:sqlCopyCodeBACKUPDATABASEdatabase_nameTOdisk='backup_device_path'[,...n]database_name:要备......
  • python logging 自定义备份的日志文件命名
    importtimeimportloggingfromlogging.handlersimportTimedRotatingFileHandlerdeflog_file_namer(log_file_name):log_file_name_split=log_file_name.split('.')log_suffix=log_file_name_split.pop(1)log_file_name_split.append(l......