在当今数字化时代,运维工作的重要性日益凸显。面对复杂多变的IT环境,高效的自动化工具和脚本成为每一位运维人员提升工作效率、保障系统稳定的关键利器。为了助力广大运维同行在日常工作中更加得心应手,我特此精心整理了一份实用的Shell脚本合集,旨在为大家提供一份“运维人的福利”,以期在繁琐的任务处理与系统管理中,助您一臂之力。
这份脚本集合凝聚了我个人在实际运维工作中积累的经验与智慧,涵盖了诸如服务器监控、故障排查、备份恢复、性能调优、自动化部署等诸多核心场景。每一行代码都经过实战打磨,力求简洁高效,易读易用,旨在适应各种复杂的运维环境,满足不同层次运维需求。无论您是初入运维领域的新人,还是经验丰富的资深专家,都能从中找到适合自己的工具,让繁杂的运维工作化繁为简,事半功倍。
在这里,我诚挚地邀请各位运维同仁随意拿取、自由分享这份Shell脚本资源。它们不仅是您日常工作的得力助手,更是交流学习、提升技能的良好素材。让我们共同携手,借助科技的力量,驱动运维工作的智能化、自动化进程,为构建稳定、高效的信息系统保驾护航。
今天我们要分析的是:
备份当前日期文件
#!/bin/bash
#一月前
historyTime=$(date "+%Y-%m-%d %H" -d '1 month ago')
echo ${historyTime}
historyTimeStamp=$(date -d "$historyTime" +%s)
echo ${historyTimeStamp}
#一周前
$(date "+%Y-%m-%d %H" -d '7 day ago')
#本月一月一日
date_this_month=`date +%Y%m01`
#一天前
date_today=`date -d '1 day ago' +%Y%m%d`
#一小时前
$(date "+%Y-%m-%d %H" -d '-1 hours')
脚本实现过程与使用方法:
- 一月前的日期和时间:
- 使用
date
命令结合-d
选项指定偏移量为1 month ago
,即一个月前。 - 通过
"+%Y-%m-%d %H"
格式化字符串输出年-月-日 时的格式。 - 将结果存储在变量
historyTime
中并打印。
- 一月前的时间戳:
- 使用
date -d "$historyTime"
将之前获取的一月前的日期时间字符串作为参数重新解析。 - 通过
+%s
格式化字符串输出对应的Unix时间戳(秒)。 - 存储在变量
historyTimeStamp
中并打印。
- 一周前的日期和时间:
- 类似一月前的日期,这里使用
-d '7 days ago'
指定偏移量为7天前。 - 同样使用
"+%Y-%m-%d %H"
格式化字符串输出年-月-日 时。 - 存储在变量
oneWeekAgo
中并打印。
- 本月的第一天:
- 直接使用
date +%Y%m01
格式化字符串,输出当前年月(如202404
)加上第一天(01
)。 - 这样就得到了如
20240401
这样的本月第一天日期,存储在变量date_this_month
中并打印。
- 一天前的日期:
- 使用
date -d '1 day ago' +%Y%m%d
指定偏移量为一天前,并以%Y%m%d
格式输出年月日。 - 存储在变量
date_yesterday
中并打印。
- 一小时前的日期和时间:
- 使用
date "+%Y-%m-%d %H" -d '-1 hour'
指定偏移量为一小时前,采用相同的日期时间格式输出。 - 存储在变量
oneHourAgo
中并打印。
如何使用:
这段脚本本身是一个完整的示例,可以直接运行以查看结果。若要将其中的日期时间计算应用到其他脚本或命令中,可直接引用相应的变量(如$historyTime
、$historyTimeStamp
等),或者复制对应date
命令的片段并根据需要调整偏移量和格式化字符串。
例如,如果你需要在备份脚本中备份一月前的某个特定时刻的文件,可以使用类似以下命令:
Bash
1cp -r /path/to/source "${historyTime}_backup"
这样,备份文件夹的名称就会包含一月前的具体日期和时间。同样,其他变量可以被用于文件名、日志记录、条件判断等多种用途。
如果想上手操作练代码的同学们可以通过阿里云ecs服务器免费试用参与!
入口:新老同学免费试用