shell中date使用总结-基于自动定期备份mysql实践

本文涉及的产品
RDSClaw,2核4GB
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
简介: ------------------------时间的格式date [OPTION]... [+FORMAT]echo `date 空格 +'时间格式串'` 调用date必须加符号反引号``,表示执行里面的结果当为: `date +'%Y%m%d-%H:%M:%S'`没有时分秒的情况下,不需要用''将格式包含起来。


------------------------时间的格式

date [OPTION]... [+FORMAT]



echo `date 空格 +'时间格式串'`

调用date必须加符号反引号``,表示执行里面的结果



当为: `date +'%Y%m%d-%H:%M:%S'`没有时分秒的情况下,不需要用''将格式包含起来。但是增加时分秒后,
如果还这样子用  `date +%Y%m%d %H:%M:%S` 则会报错:

date: extra operand `%H:%M:%S'

将其看成是额外的参数去了。如果日期与时间有符号连接起来,则不会:

%Y%m%d-%H:%M:%S,关键是有空格,程序误判了。

经验:习惯最好是将格式用引号括起来。可以是单引号,也可以是双引号。根据shell变量定义的情况来。


echo `date + "%Y%m%d %H:%M:%S"` 会直接输出在屏幕上。

定义在shell变量中的方式:

DATE="`date +'%Y%m%d-%H:%M:%S'`"


这里最外面已经有个双引号。里面格式用单引号括起来。

+就表示显示时间,而非设置时间。格式设定为一个加号后接数个标记

如果不确定时的测验方式:
1、在终端使用echo。会直接输出在屏幕上。

2、date --help 会显示帮助信息

date实际上就是一个命令。



 -d, --date=STRING         display time described by STRING, not `now'


date +%y%m%d --date=5 days ago

如果不加--date,默认是显示当前时间,按照格式"%y%m%d"进行显示。
现在加一个--date参数,就不是显示now了。

假设现在是:14:45
那么,echo `date +"%Y%m%d %H:%M:%S" --date="5 days ago"`

得到的时间是:5天之前的现在时间——20130824 14:45:00



===================================关于echo命令

在shell中。
方式1、echo "要输出的字符串"
方式2、 echo 要输出的字符串

在某些情况下,使用引号与不使用都没区别。

要让shell把里面的结果执行的话,则是
echo "``"

echo "-------------------$(date +"%y-%m-%d %H:%M:%S")----------------"

我可以把()看成是``的替代符号。


要输出换行\n的时候,必须调用 -e 参数

echo -e  "输出\n输出"


============================================没搞清楚什么样的字符才是--date=""里面的合法格式呢?
假设我要想显示上个月,怎么使用
date --date="LAST MONTH"  +"%Y-%m"

技巧:如果不确定,自己到shell命令行下面去试。

如果是非法的格式,则会提示的,比如,我传递一个:--date="LAST"
提示为date: invalid date `LAST'

 

.................

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
关系型数据库 MySQL Shell
MySQL 备份 Shell 脚本:支持远程同步与阿里云 OSS 备份
一款自动化 MySQL 备份 Shell 脚本,支持本地存储、远程服务器同步(SSH+rsync)、阿里云 OSS 备份,并自动清理过期备份。适用于数据库管理员和开发者,帮助确保数据安全。
|
12月前
|
SQL Oracle 关系型数据库
在MySQL Shell里 重启MySQL 8.4实例
在MySQL Shell里 重启MySQL 8.4实例
430 2
|
关系型数据库 Shell 网络安全
定期备份数据库:基于 Shell 脚本的自动化方案
本篇文章分享一个简单的 Shell 脚本,用于定期备份 MySQL 数据库,并自动将备份传输到远程服务器,帮助防止数据丢失。
|
缓存 监控 Shell
如何使用 HBase Shell 进行数据的实时监控和备份?
如何使用 HBase Shell 进行数据的实时监控和备份?
386 5
|
关系型数据库 MySQL Shell
MySQL回滚脚本: 误操作delete binlog回滚shell脚本
MySQL回滚脚本: 误操作delete binlog回滚shell脚本
|
Oracle 关系型数据库 MySQL
shell获取多个oracle库mysql库所有的表
请注意,此脚本假设你有足够的权限访问所有提到的数据库。在实际部署前,请确保对脚本中的数据库凭据、主机名和端口进行适当的修改和验证。此外,处理数据库操作时,务必谨慎操作,避免因错误的脚本执行造成数据损坏或服务中断。
279 0
|
7月前
|
存储 安全 Unix
七、Linux Shell 与脚本基础
别再一遍遍地敲重复的命令了,把它们写进Shell脚本,就能一键搞定。脚本本质上就是个存着一堆命令的文本文件,但要让它“活”起来,有几个关键点:文件开头最好用#!/usr/bin/env bash来指定解释器,并用chmod +x给它执行权限。执行时也有讲究:./script.sh是在一个新“房间”(子Shell)里跑,不影响你;而source script.sh是在当前“房间”里跑,适合用来加载环境变量和配置文件。
633 9
|
7月前
|
存储 Shell Linux
八、Linux Shell 脚本:变量与字符串
Shell脚本里的变量就像一个个贴着标签的“箱子”。装东西(赋值)时,=两边千万不能有空格。用单引号''装进去的东西会原封不动,用双引号""则会让里面的$变量先“变身”再装箱。默认箱子只能在当前“房间”(Shell进程)用,想让隔壁房间(子进程)也能看到,就得给箱子盖个export的“出口”戳。此外,Shell还自带了$?(上条命令的成绩单)和$1(别人递进来的第一个包裹)等许多特殊箱子,非常有用。
665 2
|
10月前
|
Shell
Shell脚本循环控制:shift、continue、break、exit指令
使用这些命令可以让你的Shell脚本像有生命一样动起来。正确使用它们,你的脚本就能像一场精心编排的舞蹈剧目,既有旋律的起伏,也有节奏的跳跃,最终以一场惊艳的表演结束。每一个动作、每一个转折点,都准确、优雅地完成所需要表达的逻辑。如此,你的脚本不只是冰冷的代码,它透过终端的界面,跳着有节奏的舞蹈,走进观众——使用者的心中。
359 60
|
7月前
|
数据采集 监控 Shell
无需Python:Shell脚本如何成为你的自动化爬虫引擎?
Shell脚本利用curl/wget发起请求,结合文本处理工具构建轻量级爬虫,支持并行加速、定时任务、增量抓取及分布式部署。通过随机UA、异常重试等优化提升稳定性,适用于日志监控、价格追踪等场景。相比Python,具备启动快、资源占用低的优势,适合嵌入式或老旧服务器环境,复杂任务可结合Python实现混合编程。