【Linux】通过Crontab和shell脚本实现定期备份和删除PG数据库表数据
〇、参考资料
一、Crontab使用
1、查看状态
service crond status
2、新建crontab任务
crontab -e
输入字符串
* * * * * cd /home/bigdata && ./demo1_execute_and_input_parapmeter.sh dbname test
3、查看现在的定时任务
[bigdata@pg-xuelei-bigdata-dev ~]$ crontab -l
* * * * * cd /home/bigdata && ./demo1_execute_and_input_parapmeter.sh dbname test
4、删除定时任务
crontab -e
删除对应的内容
二、脚本编写
(一)实际使用
1、备份命令
pg_dump --host=172.16.5.66 --port=5432 --username=postgres --dbname=${2} --if-exists --clean --no-privileges --no-owner --file=./data/${2}/${2}_${time1}_bak.sql
2、shell脚本-删除文件夹并备份
#!/bin/bash
time1=$(date "+%Y%m%d")
sudo rm -rf ./data/${2}
sudo mkdir ./data/${2}
timer_start=`date "+%Y-%m-%d %H:%M:%S"`
sudo pg_dump --host=172.16.5.66 --port=5432 --username=postgres --dbname=${2} --if-exists --clean --no-privileges --no-owner --file=./data/${2}/${2}_${time1}_bak.sql >> pg_dump_execute.log
timer_end=`date "+%Y-%m-%d %H:%M:%S"`
duration=`echo eval $(($(date +%s -d "${timer_end}") - $(date +%s -d "${timer_start}"))) | awk '{t=split("60 s 60 m 24 h 999 d",a);for(n=1;n<t;n+=2){if($1==0)break;s=$1%a[n]a[n+1]s;$1=int($1/a[n])}print s}'`
echo "耗时: $duration"
3、删除前5日内容并备份
4、正确打印时间
(二)练习
1、命令输出追加到文件
echo "a new line" >> a.txt
2、获取命令输入的参数
#!/bin/sh
ps -ef | grep $1
3、格式化重定向到文本
#!/bin/sh
time_var=$(date "+%Y-%m-%d")
echo $time_var >> a.txt
4、计算日期差
#!/bin/sh
time_start=$(date)
sudo docker ps
ps -ef |grep docker
time_end=$(date)
time_diff=$($time_end-$time_start)
echo "共经过了"+$time_diff+"s"
【Linux】通过Crontab和shell脚本实现定期备份和删除PG数据库表数据的更多相关文章
- 《Linux命令行与shell脚本编程大全》第十五章 呈现数据
15.1 理解输入和输出 现在知道两种显示脚本输出的方法 1)在显示器屏幕上显示 2)将输出文件重定向到文件中 15.1.1 标准文件描述符 Linux系统将每个对象当做文件处理.这包括输入和数出进程 ...
- Linux常用命令及shell脚本
一. 用户管理(添加用户.切换用户.删除用户) ~ ...
- 自学Linux命令行与Shell脚本之路
自学Linux命令行与Shell脚本之路[第一回]:初识Linux 1.1 自学Linux Shell1.1-Linux初识 1.2 自学Linux Shell1.2-Linux目录结构 1.3 ...
- 在Linux下如何用Shell脚本读写XML?现有一个config.xml(转)
在Linux下如何用Shell脚本读写XML?现有一个config.xml <?xml version="1.0" encoding="UTF-8"?&g ...
- linux的基本操作(shell 脚本的基础知识)
shell 脚本的基础知识 日常的linux系统管理工作中必不可少的就是shell脚本,如果不会写shell脚本,那么你就不算一个合格的管理员.目前很多单位在招聘linux系统管理员时,shell脚本 ...
- Linux命令行与shell脚本编程大全.第3版(文字版) 超清文字-非扫描版 [免积分、免登录]
此处免费下载,无需账号,无需登录,无需积分.收集自互联网,侵权通知删除. 点击下载:Linux命令行与shell脚本编程大全.第3版 (大小:约22M)
- 《Linux命令行与shell脚本编程大全 第3版》创建实用的脚本---11
以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:
- 《Linux命令行与shell脚本编程大全 第3版》高级Shell脚本编程---47
以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:
- 《Linux命令行与shell脚本编程大全 第3版》Shell脚本编程基础---57
以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:
- 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---57
以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:
随机推荐
- es根据关键词查看某个指定索引的内容并删除
# 根据关键词查询某个索引的内容 GET product/_search?q=title:测试商品 {"query":{"match_all":{}}} # 根 ...
- 2流高手速成记(之三):SpringBoot整合mybatis/mybatis-plus实现数据持久化
接上回 上一篇我们简单介绍了基于SpringBoot实现简单的Web开发,本节来看Web开发中必不可少的内容--数据持久化 先看项目结构: 1. 创建数据表 打开mysql,打开数据库 test (没 ...
- 关于HM NISEDIT在新版系统下编译并运行提示权限不足问题的解决方案
如果你使用过NSIS为你的项目制作过安装包,那HM nisedit一定是你绕不过去的槛,作为NSIS号称的最佳免费IDE/编辑器,功能齐全,与NSIS配合性能强悍,实至名归.只是开发作者最后版本更新在 ...
- 220501 T1 困难的图论 (tarjan 点双)
求满足题目要求的简单环,做出图中所有的点双,用vector存储点双中的边,如果该点双满足点数=边数,就是我们想要的,求边的异或和即可:如果该点双点数小于边数,说明有不只一个环覆盖,不满足题意. 1 # ...
- ASP.NET Core 中的模型绑定
微软官方文档:ASP.NET Core 中的模型绑定 Route 是通过MVC Route URL取值. 如:http://localhost:5000/Home/Index/2,id取出的值就会是2 ...
- Spring_Boot项目集成Swagger填坑
事情是这样的: 最近疫情在家里闲的无聊 看了看Swagger-2 在练习的过程出现了错误 写个帖子 希望跟我有同样问题的朋友可以避雷. 下面进入正题: 编辑 我使用的swagger-2版本是2.9.4 ...
- web前端一览&jQuery
web前端一览 html:裸体 css:好看的衣服 //通常基于bootstrap魔改 JavaScript:动起来 //通常基于JQuery魔改 jQuer ...
- springboot+thymeleaf中前台页面展示中、将不同的数字替换成不同的字符串。使用条件运算符
主要用到的知识就是thyme leaf中的条件运算符 表达式:(condition)?:then:else 当条件condition成立时返回then.否则返回else 具体代码:<td th: ...
- windows下cmd补全键注册表修改
1:使用win+r打开 运行 控制台 2:输入 regedit 打开注册表 3:进入HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor\ ...
- C#-等待异步函数执行结果-将调用异步方法的函数变成非异步执行
先来简单了解一下async.await 使用async await 的前提条件:需要C# 5.0以上版本 .NET Framework 4.5以上 Visual Studio 2012以上. asyn ...