Shell日期时间和时间戳的转换
2015-08-04 07:23
661 查看
Gitlab的备份文件是以时间戳显示的,类似:1438624820_gitlab_backup.tar 为了更易于阅读,想把文件名转换成日期格式:2015-08-04_gitlab_backup.tar
所以查找了下Shell里时间转换的方法,记录如下备忘。
用shell将日期时间与时间戳互转:
date -d "2015-08-04 00:00:00" +%s 输出:1438617600
而时间戳转换为字符串可以这样做:
date -d @1438617600 "+%Y-%m-%d" 输出:2015-08-04
如果需要得到指定日期的前后几天:
seconds=`date -d "2015-08-04 00:00:00" +%s` #得到时间戳
seconds_new=`expr $seconds + 86400` #加上一天的秒数86400
date_new=`date -d @$seconds_new "+%Y-%m-%d"` #获得指定日前加上一天的日前
正则表达式时间戳以1开头,可以匹配到2033年,够用。
脚本执行放入crontab,在gitlab backup之后
所以查找了下Shell里时间转换的方法,记录如下备忘。
Linux下时间转换的一些命令:
date +%s 可以得到UNIX的时间戳;用shell将日期时间与时间戳互转:
date -d "2015-08-04 00:00:00" +%s 输出:1438617600
而时间戳转换为字符串可以这样做:
date -d @1438617600 "+%Y-%m-%d" 输出:2015-08-04
如果需要得到指定日期的前后几天:
seconds=`date -d "2015-08-04 00:00:00" +%s` #得到时间戳
seconds_new=`expr $seconds + 86400` #加上一天的秒数86400
date_new=`date -d @$seconds_new "+%Y-%m-%d"` #获得指定日前加上一天的日前
修改gitlab备份文件名的脚本:
#!/bin/bash backup_path=${1-.} echo Specified Gitlab backup path is : $backup_path for i in `find $backup_path -mtime 0 -iregex '^.*1[0-9]+_gitlab_backup.tar$' -exec basename {} \;` do time_stamp=`echo $i | cut -d'_' -f1` new_name=`date -d @$time_stamp "+%Y-%m-%d"` new_file=${new_name}_gitlab_backup.tar mv $backup_path/$i $backup_path/$new_file echo Moved backup file from name $i to $new_file done
正则表达式时间戳以1开头,可以匹配到2033年,够用。
脚本执行放入crontab,在gitlab backup之后
0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create 0 4 * * * /bin/bash /data/gitlab/backups/refine.sh /data/gitlab/backups >> /data/gitlab/backups/cron.log 2>&1
相关文章推荐
- hbase 列族优化 ,shell 管理集群
- shell路由查询脚本
- 基于Calabash-andriod的UI自动化测试(1)-环境和原理
- Xshell下中文乱码问题
- shell脚本学习笔记之sed命令用法
- 为了让vi命令也可以使用vim的配置,需要修改 vi /etc/bashrc 增加一行 alias vi='vim'此时,经过上面配置已经可以显示语法高亮了
- 也可以使用如下命令更改您的默认 Shell
- shell编程之正则表达式
- linux常用的主机shell脚本
- svn diff所有历史版本的小脚本
- shell 二元操作符 =~
- 【Linux】【Shell】Ubuntu Shell 前后台任务控制
- 【Linux】【Shell】Ubuntu Shell 前后台任务控制
- 【Linux】【Shell】Ubuntu Shell 前后台任务控制
- 【Linux】【Shell】Ubuntu Shell 前后台任务控制
- 【Linux】【Shell】Ubuntu Shell 前后台任务控制
- 【Linux】【Shell】Ubuntu Shell 前后台任务控制
- 【Linux】【Shell】Ubuntu Shell 前后台任务控制
- notepad shell环境开发配置
- 认识与学习 BASH