<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[Ops运维 | Mr`kang Blog｜小豆子]]></title> 
<link>https://www.cnmysql.com/index.php</link> 
<description><![CDATA[关注服务器运维技术、DB优化、Docker虚拟化、自动化运维、工作积累]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[Ops运维 | Mr`kang Blog｜小豆子]]></copyright>
<item>
<link>https://www.cnmysql.com/post//</link>
<title><![CDATA[shell date获取日期]]></title> 
<author>kangyang &lt;kangyang315@qq.com&gt;</author>
<category><![CDATA[LINUX系统管理]]></category>
<pubDate>Wed, 23 Jul 2014 05:50:10 +0000</pubDate> 
<guid>https://www.cnmysql.com/post//</guid> 
<description>
<![CDATA[ 
	<span style="font-size: 12px;"><span style="font-family: 宋体;">linux中用shell获取昨天、明天或多天前的日期: <br/>在Linux中对man date -d 参数说的比较模糊,以下举例进一步说明: <br/># -d, --date=STRING display time described by STRING, not `now’ <br/>[root@Gman root]# date -d next-day +%Y%m%d #明天日期 <br/>20091024 <br/>[root@Gman root]# date -d last-day +%Y%m%d #昨天日期 <br/>20091022 <br/>[root@Gman root]# date -d yesterday +%Y%m%d #昨天日期 <br/>20091022 <br/>[root@Gman root]# date -d tomorrow +%Y%m%d # 明天日期 <br/>20091024 <br/>[root@Gman root]# date -d last-month +%Y%m #上个月日期 <br/>200909 <br/>[root@Gman root]# date -d next-month +%Y%m #下个月日期 <br/>200911 <br/>[root@Gman root]# date -d next-year +%Y #明年日期 <br/>2010 <br/>DATE=$(date +%Y%m%d --date ’2 days ago’) #获取昨天或多天前的日期 <br/>名称 : date <br/>使用权限 : 所有使用者 <br/>使用方式 : date [-u] [-d datestr] [-s datestr] [--utc] [--universal] [--date=datestr] [--set=datestr] [--help] [--version] [+FORMAT] [MMDDhhmm[[CC]YY][.ss]] <br/>说明 : date 能用来显示或设定系统的日期和时间，在显示方面，使用者能设定欲显示的格式，格式设定为一个加号后接数个标记，其中可用的标记列表如下 : <br/>时间方面 : <br/>% : 印出 <br/>% %n : 下一行 <br/>%t : 跳格 <br/>%H : 小时(00..23) <br/>%I : 小时(01..12) <br/>%k : 小时(0..23) <br/>%l : 小时(1..12) <br/>%M : 分钟(00..59) <br/>%p : 显示本地 AM 或 PM <br/>%r : 直接显示时间 (12 小时制，格式为 hh:mm:ss [AP]M) <br/>%s : 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数 %S : 秒(00..61) <br/>%T : 直接显示时间 (24 小时制) <br/>%X : 相当于 %H:%M:%S <br/>%Z : 显示时区 <br/>日期方面 : <br/>%a : 星期几 (Sun..Sat) <br/>%A : 星期几 (Sunday..Saturday) <br/>%b : 月份 (Jan..Dec) <br/>%B : 月份 (January..December) <br/>%c : 直接显示日期和时间 <br/>%d : 日 (01..31) <br/>%D : 直接显示日期 (mm/dd/yy) <br/>%h : 同 %b <br/>%j : 一年中的第几天 (001..366) <br/>%m : 月份 (01..12) <br/>%U : 一年中的第几周 (00..53) (以 Sunday 为一周的第一天的情形) <br/>%w : 一周中的第几天 (0..6) <br/>%W : 一年中的第几周 (00..53) (以 Monday 为一周的第一天的情形) <br/>%x : 直接显示日期 (mm/dd/yy) <br/>%y : 年份的最后两位数字 (00.99) <br/>%Y : 完整年份 (0000..9999) <br/>若是不以加号作为开头，则表示要设定时间，而时间格式为 MMDDhhmm[[CC]YY][.ss]， <br/>其中 MM 为月份， <br/>DD 为日， <br/>hh 为小时， <br/>mm 为分钟， <br/>CC 为年份前两位数字， <br/>YY 为年份后两位数字， <br/>ss 为秒数 <br/>把计 : <br/>-d datestr : 显示 datestr 中所设定的时间 (非系统时间) <br/>--help : 显示辅助讯息 <br/>-s datestr : 将系统时间设为 datestr 中所设定的时间 <br/>-u : 显示目前的格林威治时间 <br/>--version : 显示版本编号 <br/>例子 : <br/>显示时间后跳行，再显示目前日期 : date +%T%n%D <br/>显示月份和日数 : date +%B %d <br/>显示日期和设定时间(12:34:56) : date --date 12:34:56 <br/>设置系统当前时间（12:34:56）：date --s 12:34:56 <br/>注意 : 当你不希望出现无意义的 0 时(比如说 1999/03/07)，则能在标记中插入 - 符号，比如说 date +%-H:%-M:%-S 会把时分秒中无意义的 0 给去掉，像是原本的 08:09:04 会变为 8:9:4。另外，只有取得权限者(比如说 root)才能设定系统时间。 当你以 root 身分更改了系统时间之后，请记得以 clock -w 来将系统时间写入 CMOS 中，这样下次重新开机时系统时间才会持续抱持最新的正确值。 <br/>ntp时间同步 <br/>linux系统下默认安装了ntp服务，手动进行ntp同步如下 <br/>ntpdate ntp1.nl.net <br/>当然，也能指定其他的ntp服务器 <br/>------------------------------------------------------------------- <br/>扩展功能 <br/>date 工具可以完成更多的工作，不仅仅只是打印出当前的系统日期。您可以使用它来得到给定的日期究竟是星期几，并得到相对于当前日期的相对日期。了解某一天是星期几 <br/>GNU 对 date 命令的另一个扩展是 -d 选项，当您的桌上没有日历表时（UNIX 用户不需要日历表），该选项非常有用。使用这个功能强大的选项，通过将日期作为引号括起来的参数提供，您可以快速地查明一个特定的日期究竟是星期几： <br/>$ date -d "nov 22" <br/>Wed Nov 22 00:00:00 EST 2006 <br/>$ <br/>在本示例中，您可以看到今年的 11 月 22 日是星期三。 <br/>所以，假设在 11 月 22 日召开一个重大的会议，您可以立即了解到这一天是星期三，而这一天您将赶到驻地办公室。 <br/>获得相对日期 <br/>d 选项还可以告诉您，相对于 当前日期若干天的究竟是哪一天，从现在开始的若干天或若干星期以后，或者以前（过去）。通过将这个相对偏移使用引号括起来，作为 -d 选项的参数，就可以完成这项任务。 <br/>例如，您需要了解两星期以后的日期。如果您处于 Shell 提示符处，那么可以迅速地得到答案： <br/>$ date -d ’2 weeks’ <br/>关于使用该命令，还有其他一些重要的方法。使用 next/last指令，您可以得到以后的星期几是哪一天： <br/>$ date -d ’next monday’ (下周一的日期) <br/>$ date -d next-day +%Y%m%d（明天的日期）或者：date -d tomorrow +%Y%m%d <br/>$ date -d last-day +%Y%m%d(昨天的日期) 或者：date -d yesterday +%Y%m%d <br/>$ date -d last-month +%Y%m(上个月是几月) <br/>$ date -d next-month +%Y%m(下个月是几月) <br/>使用 ago 指令，您可以得到过去的日期： <br/>$ date -d ’30 days ago’ （30天前的日期） <br/>您可以使用负数以得到相反的日期： <br/>$ date -d ’dec 14 -2 weeks’ （相对:dec 14这个日期的两周前的日期） <br/>$ date -d ’-100 days’ (100天以前的日期) <br/>$ date -d ’50 days’(50天后的日期) <br/>这个技巧非常有用，它可以根据将来的日期为自己设置提醒，可能是在脚本或 Shell 启动文件中，如下所示： <br/>DAY=`date -d ’2 weeks’ +"%b %d"` <br/>if test "`echo $DAY`" = "Aug 16"; then echo ’Product launch is now two weeks away!’; fi</span></span>
]]>
</description>
</item><item>
<link>https://www.cnmysql.com/post//#blogcomment</link>
<title><![CDATA[[评论] shell date获取日期]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>https://www.cnmysql.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>