shell 获取上个月月份的日期值


工作中有这样一个需求,每月一号将生产服务器中的数据备份到数据仓库中。之前是每月一号手动执行备份的命令,现在将其写成 shell 脚本,结合定时任务实现自动化备份。

以下为生产服务器上的脚本:

定时任务

1
0 9 1 * * /root/transform_data.sh

shell 脚本 transform_data.sh. 注意 transform_data.sh 要赋予执行权限, X.X.X.X 为数据仓库的 ip 地址。

1
2
3
4
5
6
#! /bin/sh
#此脚本用于将10.3.0.98数据上的水机数据备份到10.2.46.247,结合定时任务执行

nowdate=`date +%Y%m01` #本月第一天
lastyearmonth=`date -d"$nowdate last month" +%Y%m` #显示年和上月月份值,如:201901
echo "rsync -av /usr/local/mysql/water/slave_status_$lastyearmonth* X.X.X.X:/var/lib/mysql/water_gprs_backup"

参考文档:
在shell脚本中获取上个月最后一天的日期
linux下监控某个目录是否被更改