<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>任务 &#8211; 编码无悔 /  Intent &amp; Focused</title>
	<atom:link href="https://www.codelast.com/tag/%E4%BB%BB%E5%8A%A1/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.codelast.com</link>
	<description>最优化之路</description>
	<lastBuildDate>Sun, 03 May 2020 12:39:41 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>[翻译] 在JAVA中，怎样周期性运行一个任务</title>
		<link>https://www.codelast.com/%e7%bf%bb%e8%af%91-%e5%9c%a8java%e4%b8%ad%ef%bc%8c%e6%80%8e%e6%a0%b7%e5%91%a8%e6%9c%9f%e6%80%a7%e8%bf%90%e8%a1%8c%e4%b8%80%e4%b8%aa%e4%bb%bb%e5%8a%a1/</link>
					<comments>https://www.codelast.com/%e7%bf%bb%e8%af%91-%e5%9c%a8java%e4%b8%ad%ef%bc%8c%e6%80%8e%e6%a0%b7%e5%91%a8%e6%9c%9f%e6%80%a7%e8%bf%90%e8%a1%8c%e4%b8%80%e4%b8%aa%e4%bb%bb%e5%8a%a1/#respond</comments>
		
		<dc:creator><![CDATA[learnhard]]></dc:creator>
		<pubDate>Fri, 25 Jul 2014 03:30:25 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[原创]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[ScheduledExecutorService]]></category>
		<category><![CDATA[Timer]]></category>
		<category><![CDATA[TimerTask]]></category>
		<category><![CDATA[任务]]></category>
		<category><![CDATA[周期性]]></category>
		<guid isPermaLink="false">http://www.codelast.com/?p=8270</guid>

					<description><![CDATA[<p>
本文是对这篇文章的翻译：<a href="http://java.dzone.com/articles/how-schedule-task-run-interval" rel="noopener noreferrer" target="_blank"><span style="background-color:#ffa07a;">《How to Schedule a Task to Run in an Interval》</span></a><br />
我不知道原作者是否允许这样做，但我翻译本文仅在于传播知识的目的，在此向原作者表示深深的感谢：感谢你们的分享。</p>
<div>
	在程序中通常都有在后台周期性运行某些任务的需求。例如，类似于Java垃圾收集的后台运行任务。</div>
<div>
	我将在本文中向你展示3种不同的实现方法，如下：</div>
<div>
<span id="more-8270"></span></div>
<ul>
<li>
		<span style="color:#b22222;">使用简单的线程</span></li>
<li>
		<span style="color:#b22222;">使用TimerTask</span></li>
<li>
		<span style="color:#b22222;">使用ScheduledExecutorService</span></li>
</ul>
<div>
	<span style="color: rgb(255, 255, 255);">文章来源：</span><a href="http://www.codelast.com/" rel="noopener noreferrer" target="_blank"><span style="color: rgb(255, 255, 255);">http://www.codelast.com/</span></a></div>
<ul>
<li>
		<span style="color:#0000ff;">使用简单的线程</span></li>
</ul>
<div>
	这个方法非常简单：创建一个线程，使用while循环让它永久运行，并利用sleep方法在运行中插入时间间隔。</div>
<div>
	&#160;</div>
<div>
	这是个简单又快的实现方法。</div>
<div>
	代码示例如下：</div>
<section class="output_wrapper" id="output_wrapper_id" style="font-size: 16px; color: rgb(62, 62, 62); line-height: 1.6; letter-spacing: 0px; font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">
<pre style="font-size: inherit; color: inherit; line-height: inherit; margin-top: 0px; margin-bottom: 0px; padding: 0px;">
<code class="java language-java hljs" style="margin: 0px 2px; line-height: 18px; font-size: 14px; letter-spacing: 0px; font-family: Consolas, Inconsolata, Courier, monospace; border-radius: 0px; color: rgb(169, 183, 198); background: rgb(40, 43, 46); padding: 0.5em; overflow-wrap: normal !important; word-break: normal !important; overflow: auto !important; display: -webkit-box !important;"><span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;">public</span>&#160;<span class="hljs-class" style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px; word-wrap: inherit !important; word-break: inherit !important;"><span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;">class</span>&#160;<span class="hljs-title" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(165, 218, 45); word-wrap: inherit !important; word-break: inherit !important;">Task1</span>&#160;</span>{
<span class="hljs-function" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;"><span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; overflow-wrap: inherit !important; word-break: inherit !important;">public</span>&#160;<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; overflow-wrap: inherit !important; word-break: inherit !important;">static</span>&#160;<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; overflow-wrap: inherit !important; word-break: inherit !important;">void</span>&#160;<span class="hljs-title" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(165, 218, 45); word-wrap: inherit !important; word-break: inherit !important;">main</span><span class="hljs-params" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(255, 152, 35); word-wrap: inherit !important; word-break: inherit !important;">(String[]&#160;args)</span>&#160;</span>{
&#160;&#160;<span class="hljs-comment" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(128, 128, 128); word-wrap: inherit !important; word-break: inherit !important;">//&#160;run&#160;in&#160;a&#160;second</span>
&#160;&#160;<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;">final</span>&#160;<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;">long</span>&#160;timeInterval&#160;=&#160;<span class="hljs-number" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(174, 135, 250); word-wrap: inherit !important; word-break: inherit !important;">1000</span>;
&#160;&#160;Runnable&#160;runnable&#160;=&#160;<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;">new</span>&#160;Runnable()&#160;{
&#160;&#160;<span class="hljs-function" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;"><span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; overflow-wrap: inherit !important; word-break: inherit !important;">public</span>&#160;<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; overflow-wrap: inherit !important; word-break: inherit !important;">void</span>&#160;<span class="hljs-title" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(165, 218, 45); word-wrap: inherit !important; word-break: inherit !important;">run</span><span class="hljs-params" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(255, 152, 35); word-wrap: inherit !important; word-break: inherit !important;">()</span>&#160;</span>{
&#160;&#160;&#160;&#160;<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;">while</span>&#160;(<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;">true</span>)&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;<span class="hljs-comment" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(128, 128, 128); word-wrap: inherit !important; word-break: inherit !important;">//&#160;-------&#160;code&#160;for&#160;task&#160;to&#160;run</span>
&#160;&#160;&#160;&#160;&#160;&#160;System.out.println(</code></pre>&#8230; <a href="https://www.codelast.com/%e7%bf%bb%e8%af%91-%e5%9c%a8java%e4%b8%ad%ef%bc%8c%e6%80%8e%e6%a0%b7%e5%91%a8%e6%9c%9f%e6%80%a7%e8%bf%90%e8%a1%8c%e4%b8%80%e4%b8%aa%e4%bb%bb%e5%8a%a1/" class="read-more">Read More </a></section>]]></description>
										<content:encoded><![CDATA[<p>
本文是对这篇文章的翻译：<a href="http://java.dzone.com/articles/how-schedule-task-run-interval" rel="noopener noreferrer" target="_blank"><span style="background-color:#ffa07a;">《How to Schedule a Task to Run in an Interval》</span></a><br />
我不知道原作者是否允许这样做，但我翻译本文仅在于传播知识的目的，在此向原作者表示深深的感谢：感谢你们的分享。</p>
<div>
	在程序中通常都有在后台周期性运行某些任务的需求。例如，类似于Java垃圾收集的后台运行任务。</div>
<div>
	我将在本文中向你展示3种不同的实现方法，如下：</div>
<div>
<span id="more-8270"></span></div>
<ul>
<li>
		<span style="color:#b22222;">使用简单的线程</span></li>
<li>
		<span style="color:#b22222;">使用TimerTask</span></li>
<li>
		<span style="color:#b22222;">使用ScheduledExecutorService</span></li>
</ul>
<div>
	<span style="color: rgb(255, 255, 255);">文章来源：</span><a href="http://www.codelast.com/" rel="noopener noreferrer" target="_blank"><span style="color: rgb(255, 255, 255);">http://www.codelast.com/</span></a></div>
<ul>
<li>
		<span style="color:#0000ff;">使用简单的线程</span></li>
</ul>
<div>
	这个方法非常简单：创建一个线程，使用while循环让它永久运行，并利用sleep方法在运行中插入时间间隔。</div>
<div>
	&nbsp;</div>
<div>
	这是个简单又快的实现方法。</div>
<div>
	代码示例如下：</div>
<section class="output_wrapper" id="output_wrapper_id" style="font-size: 16px; color: rgb(62, 62, 62); line-height: 1.6; letter-spacing: 0px; font-family: &quot;Helvetica Neue&quot;, Helvetica, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;">
<pre style="font-size: inherit; color: inherit; line-height: inherit; margin-top: 0px; margin-bottom: 0px; padding: 0px;">
<code class="java language-java hljs" style="margin: 0px 2px; line-height: 18px; font-size: 14px; letter-spacing: 0px; font-family: Consolas, Inconsolata, Courier, monospace; border-radius: 0px; color: rgb(169, 183, 198); background: rgb(40, 43, 46); padding: 0.5em; overflow-wrap: normal !important; word-break: normal !important; overflow: auto !important; display: -webkit-box !important;"><span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;">public</span>&nbsp;<span class="hljs-class" style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px; word-wrap: inherit !important; word-break: inherit !important;"><span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;">class</span>&nbsp;<span class="hljs-title" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(165, 218, 45); word-wrap: inherit !important; word-break: inherit !important;">Task1</span>&nbsp;</span>{
<span class="hljs-function" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;"><span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; overflow-wrap: inherit !important; word-break: inherit !important;">public</span>&nbsp;<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; overflow-wrap: inherit !important; word-break: inherit !important;">static</span>&nbsp;<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; overflow-wrap: inherit !important; word-break: inherit !important;">void</span>&nbsp;<span class="hljs-title" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(165, 218, 45); word-wrap: inherit !important; word-break: inherit !important;">main</span><span class="hljs-params" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(255, 152, 35); word-wrap: inherit !important; word-break: inherit !important;">(String[]&nbsp;args)</span>&nbsp;</span>{
&nbsp;&nbsp;<span class="hljs-comment" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(128, 128, 128); word-wrap: inherit !important; word-break: inherit !important;">//&nbsp;run&nbsp;in&nbsp;a&nbsp;second</span>
&nbsp;&nbsp;<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;">final</span>&nbsp;<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;">long</span>&nbsp;timeInterval&nbsp;=&nbsp;<span class="hljs-number" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(174, 135, 250); word-wrap: inherit !important; word-break: inherit !important;">1000</span>;
&nbsp;&nbsp;Runnable&nbsp;runnable&nbsp;=&nbsp;<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;">new</span>&nbsp;Runnable()&nbsp;{
&nbsp;&nbsp;<span class="hljs-function" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;"><span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; overflow-wrap: inherit !important; word-break: inherit !important;">public</span>&nbsp;<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; overflow-wrap: inherit !important; word-break: inherit !important;">void</span>&nbsp;<span class="hljs-title" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(165, 218, 45); word-wrap: inherit !important; word-break: inherit !important;">run</span><span class="hljs-params" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(255, 152, 35); word-wrap: inherit !important; word-break: inherit !important;">()</span>&nbsp;</span>{
&nbsp;&nbsp;&nbsp;&nbsp;<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;">while</span>&nbsp;(<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;">true</span>)&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="hljs-comment" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(128, 128, 128); word-wrap: inherit !important; word-break: inherit !important;">//&nbsp;-------&nbsp;code&nbsp;for&nbsp;task&nbsp;to&nbsp;run</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(<span class="hljs-string" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(238, 220, 112); word-wrap: inherit !important; word-break: inherit !important;">&quot;Hello&nbsp;!!&quot;</span>);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="hljs-comment" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(128, 128, 128); word-wrap: inherit !important; word-break: inherit !important;">//&nbsp;-------&nbsp;ends&nbsp;here</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;">try</span>&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Thread.sleep(timeInterval);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;">catch</span>&nbsp;(InterruptedException&nbsp;e)&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;};
&nbsp;&nbsp;Thread&nbsp;thread&nbsp;=&nbsp;<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;">new</span>&nbsp;Thread(runnable);
&nbsp;&nbsp;thread.start();
&nbsp;&nbsp;}
}
</code></pre>
</section>
<p><span style="color: rgb(255, 255, 255);">文章来源：</span><a href="http://www.codelast.com/" rel="noopener noreferrer" target="_blank"><span style="color: rgb(255, 255, 255);">http://www.codelast.com/</span></a></p>
<ul>
<li>
		<span style="color:#0000ff;">使用Timer和TimerTask</span></li>
</ul>
<p>之前我们看到的方法极其简单快速，但是它缺少一些功能。</p>
<div>
	这个方法比之前的方法有更多好处：</div>
<div>
	可以控制什么时候开始、取消任务；</div>
<div>
	如果愿意的话，可以延迟第一次执行时间，这个特性很有用。</div>
<div>
	在本例中，<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Timer.html" rel="noopener noreferrer" target="_blank"><span style="background-color:#add8e6;">Timer</span></a>类是用于schedule的，<a href="http://docs.oracle.com/javase/7/docs/api/java/util/TimerTask.html" rel="noopener noreferrer" target="_blank"><span style="background-color:#add8e6;">TimerTask</span></a>类是用于包装在它里面的run()方法中执行的任务。</div>
<div>
	Timer实例可以共享，用于schedule多个任务，并且它是线程安全的。</div>
<div>
	当Timer类的构造函数被调用的时候，就创建了一个线程，并且这个单独的线程可用于schedule任务。</div>
<div>
	为了实现我们的目的，我们使用<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Timer.html#scheduleAtFixedRate(java.util.TimerTask,%20long, long)" rel="noopener noreferrer" target="_blank"><span style="background-color:#add8e6;">Timer类的scheduleAtFixedRate方法</span></a>。</div>
<div>
	下面的代码展示了Timer类和TimerTask类的使用方法：</div>
<section class="output_wrapper" id="output_wrapper_id" style="font-size: 16px; color: rgb(62, 62, 62); line-height: 1.6; letter-spacing: 0px; font-family: &quot;Helvetica Neue&quot;, Helvetica, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;">
<pre style="font-size: inherit; color: inherit; line-height: inherit; margin-top: 0px; margin-bottom: 0px; padding: 0px;">
<code class="java language-java hljs" style="margin: 0px 2px; line-height: 18px; font-size: 14px; letter-spacing: 0px; font-family: Consolas, Inconsolata, Courier, monospace; border-radius: 0px; color: rgb(169, 183, 198); background: rgb(40, 43, 46); padding: 0.5em; overflow-wrap: normal !important; word-break: normal !important; overflow: auto !important; display: -webkit-box !important;"><span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;">import</span>&nbsp;java.util.Timer;
<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;">import</span>&nbsp;java.util.TimerTask;

<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;">public</span>&nbsp;<span class="hljs-class" style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px; word-wrap: inherit !important; word-break: inherit !important;"><span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;">class</span>&nbsp;<span class="hljs-title" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(165, 218, 45); word-wrap: inherit !important; word-break: inherit !important;">Task2</span>&nbsp;</span>{
&nbsp;&nbsp;<span class="hljs-function" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;"><span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; overflow-wrap: inherit !important; word-break: inherit !important;">public</span>&nbsp;<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; overflow-wrap: inherit !important; word-break: inherit !important;">static</span>&nbsp;<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; overflow-wrap: inherit !important; word-break: inherit !important;">void</span>&nbsp;<span class="hljs-title" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(165, 218, 45); word-wrap: inherit !important; word-break: inherit !important;">main</span><span class="hljs-params" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(255, 152, 35); word-wrap: inherit !important; word-break: inherit !important;">(String[]&nbsp;args)</span>&nbsp;</span>{
&nbsp;&nbsp;&nbsp;&nbsp;TimerTask&nbsp;task&nbsp;=&nbsp;<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;">new</span>&nbsp;TimerTask()&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="hljs-meta" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(91, 218, 237); word-wrap: inherit !important; word-break: inherit !important;">@Override</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="hljs-function" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;"><span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; overflow-wrap: inherit !important; word-break: inherit !important;">public</span>&nbsp;<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; overflow-wrap: inherit !important; word-break: inherit !important;">void</span>&nbsp;<span class="hljs-title" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(165, 218, 45); word-wrap: inherit !important; word-break: inherit !important;">run</span><span class="hljs-params" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(255, 152, 35); word-wrap: inherit !important; word-break: inherit !important;">()</span>&nbsp;</span>{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="hljs-comment" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(128, 128, 128); word-wrap: inherit !important; word-break: inherit !important;">//&nbsp;task&nbsp;to&nbsp;run&nbsp;goes&nbsp;here</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(<span class="hljs-string" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(238, 220, 112); word-wrap: inherit !important; word-break: inherit !important;">&quot;Hello&nbsp;!!!&quot;</span>);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;};
&nbsp;&nbsp;&nbsp;&nbsp;Timer&nbsp;timer&nbsp;=&nbsp;<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;">new</span>&nbsp;Timer();
&nbsp;&nbsp;&nbsp;&nbsp;<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;">long</span>&nbsp;delay&nbsp;=&nbsp;<span class="hljs-number" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(174, 135, 250); word-wrap: inherit !important; word-break: inherit !important;">0</span>;
&nbsp;&nbsp;&nbsp;&nbsp;<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;">long</span>&nbsp;intevalPeriod&nbsp;=&nbsp;<span class="hljs-number" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(174, 135, 250); word-wrap: inherit !important; word-break: inherit !important;">1</span>&nbsp;*&nbsp;<span class="hljs-number" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(174, 135, 250); word-wrap: inherit !important; word-break: inherit !important;">1000</span>;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;<span class="hljs-comment" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(128, 128, 128); word-wrap: inherit !important; word-break: inherit !important;">//&nbsp;schedules&nbsp;the&nbsp;task&nbsp;to&nbsp;be&nbsp;run&nbsp;in&nbsp;an&nbsp;interval&nbsp;</span>
&nbsp;&nbsp;&nbsp;&nbsp;timer.scheduleAtFixedRate(task,&nbsp;delay,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;intevalPeriod);
&nbsp;&nbsp;}&nbsp;<span class="hljs-comment" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(128, 128, 128); word-wrap: inherit !important; word-break: inherit !important;">//&nbsp;end&nbsp;of&nbsp;main</span>
}
</code></pre>
</section>
<p>从JDK 1.3开始这些类就已经有了。<br />
<span style="color: rgb(255, 255, 255);">文章来源：</span><a href="http://www.codelast.com/" rel="noopener noreferrer" target="_blank"><span style="color: rgb(255, 255, 255);">http://www.codelast.com/</span></a></p>
<ul>
<li>
		<span style="color:#0000ff;">使用ScheduledExecutorService</span></li>
</ul>
<p>这个类是从Java SE 5开始作为并发工具引入的，位于包java.util.concurrent中。</p>
<div>
	与之前的解决方案相比，它提供了如下好处：</div>
<div>
	用线程池来执行任务，而之前的Timer类是单线程的。</div>
<div>
	提供了第一次任务延迟执行的灵活性。</div>
<div>
	提供了设置时间间隔的良好惯例。</div>
<div>
	&nbsp;</div>
<div>
	下面的代码展示了使用方法。<br />
	在本例中，我们使用了<a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ScheduledExecutorService.html#scheduleAtFixedRate(java.lang.Runnable,%20long, long, java.util.concurrent.TimeUnit)" rel="noopener noreferrer" target="_blank"><span style="background-color:#add8e6;">ScheduledExecutorService类的scheduleAtFixedRate方法</span></a>，它接受一个Runnable对象作为参数（其包含了要周期性运行的代码），以及第一次执行任务的延迟时间。</div>
<section class="output_wrapper" id="output_wrapper_id" style="font-size: 16px; color: rgb(62, 62, 62); line-height: 1.6; letter-spacing: 0px; font-family: &quot;Helvetica Neue&quot;, Helvetica, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, Arial, sans-serif;">
<pre style="font-size: inherit; color: inherit; line-height: inherit; margin-top: 0px; margin-bottom: 0px; padding: 0px;">
<code class="java language-java hljs" style="margin: 0px 2px; line-height: 18px; font-size: 14px; letter-spacing: 0px; font-family: Consolas, Inconsolata, Courier, monospace; border-radius: 0px; color: rgb(169, 183, 198); background: rgb(40, 43, 46); padding: 0.5em; overflow-wrap: normal !important; word-break: normal !important; overflow: auto !important; display: -webkit-box !important;"><span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;">import</span>&nbsp;java.util.concurrent.Executors;
<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;">import</span>&nbsp;java.util.concurrent.ScheduledExecutorService;
<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;">import</span>&nbsp;java.util.concurrent.TimeUnit;

<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;">public</span>&nbsp;<span class="hljs-class" style="font-size: inherit; color: inherit; line-height: inherit; margin: 0px; padding: 0px; word-wrap: inherit !important; word-break: inherit !important;"><span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;">class</span>&nbsp;<span class="hljs-title" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(165, 218, 45); word-wrap: inherit !important; word-break: inherit !important;">Task3</span>&nbsp;</span>{
&nbsp;&nbsp;<span class="hljs-function" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;"><span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; overflow-wrap: inherit !important; word-break: inherit !important;">public</span>&nbsp;<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; overflow-wrap: inherit !important; word-break: inherit !important;">static</span>&nbsp;<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; overflow-wrap: inherit !important; word-break: inherit !important;">void</span>&nbsp;<span class="hljs-title" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(165, 218, 45); word-wrap: inherit !important; word-break: inherit !important;">main</span><span class="hljs-params" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(255, 152, 35); word-wrap: inherit !important; word-break: inherit !important;">(String[]&nbsp;args)</span>&nbsp;</span>{
&nbsp;&nbsp;&nbsp;&nbsp;Runnable&nbsp;runnable&nbsp;=&nbsp;<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;">new</span>&nbsp;Runnable()&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="hljs-function" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(248, 35, 117); word-wrap: inherit !important; word-break: inherit !important;"><span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; overflow-wrap: inherit !important; word-break: inherit !important;">public</span>&nbsp;<span class="hljs-keyword" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; overflow-wrap: inherit !important; word-break: inherit !important;">void</span>&nbsp;<span class="hljs-title" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(165, 218, 45); word-wrap: inherit !important; word-break: inherit !important;">run</span><span class="hljs-params" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(255, 152, 35); word-wrap: inherit !important; word-break: inherit !important;">()</span>&nbsp;</span>{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="hljs-comment" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(128, 128, 128); word-wrap: inherit !important; word-break: inherit !important;">//&nbsp;task&nbsp;to&nbsp;run&nbsp;goes&nbsp;here</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(<span class="hljs-string" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(238, 220, 112); word-wrap: inherit !important; word-break: inherit !important;">&quot;Hello&nbsp;!!&quot;</span>);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;};
&nbsp;&nbsp;&nbsp;&nbsp;ScheduledExecutorService&nbsp;service&nbsp;=&nbsp;Executors
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.newSingleThreadScheduledExecutor();
&nbsp;&nbsp;&nbsp;&nbsp;service.scheduleAtFixedRate(runnable,&nbsp;<span class="hljs-number" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(174, 135, 250); word-wrap: inherit !important; word-break: inherit !important;">0</span>,&nbsp;<span class="hljs-number" style="font-size: inherit; line-height: inherit; margin: 0px; padding: 0px; color: rgb(174, 135, 250); word-wrap: inherit !important; word-break: inherit !important;">1</span>,&nbsp;TimeUnit.SECONDS);
&nbsp;&nbsp;}
}
</code></pre>
</section>
<p style="font-size: 16px; margin: 5px 0px; clear: both; font-family: sans-serif;">
	<span style="color: rgb(255, 255, 255);">文章来源：</span><a href="https://www.codelast.com/" rel="noopener noreferrer" target="_blank"><span style="color: rgb(255, 255, 255);">https://www.codelast.com/</span></a><br />
	<span style="color: rgb(255, 0, 0);">➤➤</span>&nbsp;版权声明&nbsp;<span style="color: rgb(255, 0, 0);">➤➤</span>&nbsp;<br />
	转载需注明出处：<u><a href="https://www.codelast.com/" rel="noopener noreferrer" target="_blank"><em><span style="color: rgb(0, 0, 255);"><strong><span style="font-family: arial, helvetica, sans-serif;">codelast.com</span></strong></span></em></a></u>&nbsp;<br />
	感谢关注我的微信公众号（微信扫一扫）：</p>
<p style="border: 0px; font-size: 13px; margin: 0px 0px 9px; outline: 0px; padding: 0px; color: rgb(77, 77, 77);">
	<img decoding="async" alt="wechat qrcode of codelast" src="https://www.codelast.com/codelast_wechat_qr_code.jpg" style="width: 200px; height: 200px;" /></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.codelast.com/%e7%bf%bb%e8%af%91-%e5%9c%a8java%e4%b8%ad%ef%bc%8c%e6%80%8e%e6%a0%b7%e5%91%a8%e6%9c%9f%e6%80%a7%e8%bf%90%e8%a1%8c%e4%b8%80%e4%b8%aa%e4%bb%bb%e5%8a%a1/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>[原创]VMware EXSi磁盘容量上限</title>
		<link>https://www.codelast.com/%e5%8e%9f%e5%88%9bvmware-exsi%e7%a3%81%e7%9b%98%e5%ae%b9%e9%87%8f%e4%b8%8a%e9%99%90/</link>
					<comments>https://www.codelast.com/%e5%8e%9f%e5%88%9bvmware-exsi%e7%a3%81%e7%9b%98%e5%ae%b9%e9%87%8f%e4%b8%8a%e9%99%90/#respond</comments>
		
		<dc:creator><![CDATA[learnhard]]></dc:creator>
		<pubDate>Fri, 11 Feb 2011 07:03:14 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[原创]]></category>
		<category><![CDATA[2T]]></category>
		<category><![CDATA[crontab]]></category>
		<category><![CDATA[EXSi]]></category>
		<category><![CDATA[harddisk]]></category>
		<category><![CDATA[limit]]></category>
		<category><![CDATA[VMware]]></category>
		<category><![CDATA[vswp]]></category>
		<category><![CDATA[上限]]></category>
		<category><![CDATA[交换文件]]></category>
		<category><![CDATA[任务]]></category>
		<category><![CDATA[容量]]></category>
		<category><![CDATA[磁盘]]></category>
		<guid isPermaLink="false">http://www.codelast.com/?p=1158</guid>

					<description><![CDATA[<p>
	<br />
	<span style="font-family:arial,helvetica,sans-serif;"><span style="font-size:14px;">在一台做了Raid、只有一个&#62;7TB的磁盘（之所以会这么大，是因为用Raid把N块物理硬盘做成了一块虚拟硬盘）的服务器上，安装了VMware EXSi后，发现数据存储可用空间只有1.27TB，神奇，另外的6T多空间哪去了呢？如下图：</span></span></p>
<p>
<span id="more-1158"></span></p>
<p style="text-align: center; ">
	<img fetchpriority="high" decoding="async" alt="VMFS" height="414" src="http://www.codelast.com/wp-content/uploads/2011/02/VMFS.png" width="600" /></p>
<p>
	可见，物理磁盘总共有7.28TB的空间，而VMware可用的数据存储区只有1.27TB，并且，当点击上方的&#8220;增加&#8221;按钮来增加存储空间时，发现没有任何可以添加的：</p>
<p style="text-align: center; ">
	<img decoding="async" alt="VMFS_添加数据存储容量" height="403" src="http://www.codelast.com/wp-content/uploads/2011/02/VMFS_Add.png" width="520" /></p>
<p>
	<span style="color: rgb(255, 255, 255);">文章来源：</span><a href="http://www.codelast.com/" target="_blank" rel="noopener noreferrer"><span style="color: rgb(255, 255, 255);">http://www.codelast.com/</span></a></p>
<p>
	这是因为我只有一块7.28T的磁盘（在底层，是通过Raid卡将N块物理硬盘做成一块虚拟磁盘的，所以实际上软件层看到的就只有一块物理磁盘），所以无法添加任何存储空间。</p>
<p>
	那么，到底VMware ESXi支持多大的单个逻辑单元（LUN）呢？网上的大多数说法是2TB，超过了2TB的话，就除以2取余数，因此我上面的7.28TB最后就变成了1.27TB。</p>
<p>
	所以，如果你想要使用完你全部的磁盘空间，就需要在Raid中（如果做了Raid的话）按最大2TB来分成N个虚拟磁盘，然后再把它们全部&#8220;添加&#8221;到VMware ESXi中。</p>
<p>
	&#160;</p>
<p>
	&#160;</p>
<p>
	<span style="color:#00f;">另附两个VMware ESXi的技巧（来自于网上）</span>：</p>
<p>
	<span style="color:#f00;">（1</span><span style="color:#f00;">）</span><span style="color:#800080;">向VMware ESXi中添加crontab任务的方法</span>：点击<a href="http://www.jules.fm/Logbook/files/add_cron_job_vmware.html" target="_blank" rel="noopener noreferrer">这个链接</a>。</p>
<p>
	在VMware ESXi中添加crontab任务可不像通常的Linux系统一样简单，所以，不要凭空想像，具体操作方法请看上面的链接吧。下面把它摘录如下：</p>
<p></p>
<div>
	<span style="color:#006400;">This explains how to add a cron job to VMware in such a way that it will still be there after reboots.</span></div>&#8230; <a href="https://www.codelast.com/%e5%8e%9f%e5%88%9bvmware-exsi%e7%a3%81%e7%9b%98%e5%ae%b9%e9%87%8f%e4%b8%8a%e9%99%90/" class="read-more">Read More </a>]]></description>
										<content:encoded><![CDATA[<p>
	<br />
	<span style="font-family:arial,helvetica,sans-serif;"><span style="font-size:14px;">在一台做了Raid、只有一个&gt;7TB的磁盘（之所以会这么大，是因为用Raid把N块物理硬盘做成了一块虚拟硬盘）的服务器上，安装了VMware EXSi后，发现数据存储可用空间只有1.27TB，神奇，另外的6T多空间哪去了呢？如下图：</span></span></p>
<p>
<span id="more-1158"></span></p>
<p style="text-align: center; ">
	<img decoding="async" alt="VMFS" height="414" src="http://www.codelast.com/wp-content/uploads/2011/02/VMFS.png" width="600" /></p>
<p>
	可见，物理磁盘总共有7.28TB的空间，而VMware可用的数据存储区只有1.27TB，并且，当点击上方的&ldquo;增加&rdquo;按钮来增加存储空间时，发现没有任何可以添加的：</p>
<p style="text-align: center; ">
	<img loading="lazy" decoding="async" alt="VMFS_添加数据存储容量" height="403" src="http://www.codelast.com/wp-content/uploads/2011/02/VMFS_Add.png" width="520" /></p>
<p>
	<span style="color: rgb(255, 255, 255);">文章来源：</span><a href="http://www.codelast.com/" target="_blank" rel="noopener noreferrer"><span style="color: rgb(255, 255, 255);">http://www.codelast.com/</span></a></p>
<p>
	这是因为我只有一块7.28T的磁盘（在底层，是通过Raid卡将N块物理硬盘做成一块虚拟磁盘的，所以实际上软件层看到的就只有一块物理磁盘），所以无法添加任何存储空间。</p>
<p>
	那么，到底VMware ESXi支持多大的单个逻辑单元（LUN）呢？网上的大多数说法是2TB，超过了2TB的话，就除以2取余数，因此我上面的7.28TB最后就变成了1.27TB。</p>
<p>
	所以，如果你想要使用完你全部的磁盘空间，就需要在Raid中（如果做了Raid的话）按最大2TB来分成N个虚拟磁盘，然后再把它们全部&ldquo;添加&rdquo;到VMware ESXi中。</p>
<p>
	&nbsp;</p>
<p>
	&nbsp;</p>
<p>
	<span style="color:#00f;">另附两个VMware ESXi的技巧（来自于网上）</span>：</p>
<p>
	<span style="color:#f00;">（1</span><span style="color:#f00;">）</span><span style="color:#800080;">向VMware ESXi中添加crontab任务的方法</span>：点击<a href="http://www.jules.fm/Logbook/files/add_cron_job_vmware.html" target="_blank" rel="noopener noreferrer">这个链接</a>。</p>
<p>
	在VMware ESXi中添加crontab任务可不像通常的Linux系统一样简单，所以，不要凭空想像，具体操作方法请看上面的链接吧。下面把它摘录如下：</p>
<p></p>
<div>
	<span style="color:#006400;">This explains how to add a cron job to VMware in such a way that it will still be there after reboots.</span></div>
<div>
	<span style="color:#006400;">Having enabled ssh access to your ESX/ESXi server, ssh in as root.</span></div>
<div>
	&nbsp;</div>
<div>
	<span style="color:#006400;">Firstly, add the cron job to the root crontab:</span></div>
<div>
	<span style="color:#006400;">(1)Edit /var/spool/cron/crontabs/root</span></div>
<div>
	<span style="color:#006400;">(2)Add the line (all on one line)</span></div>
<div>
	<span style="color:#006400;">5 0 * * * /full/path/to/script arguments/with/full/path &gt; /full/path/to/logfile 2&gt;&amp;1</span></div>
<div>
	<span style="color:#006400;">(3)Run the command &quot;cat /var/run/crond.pid&quot;</span></div>
<div>
	<span style="color:#006400;">That will print the process number of the running crond, such as 12345</span></div>
<div>
	<span style="color:#006400;">(4)Run the command &quot;kill 12345&quot;</span></div>
<div>
	<span style="color:#006400;">where &quot;12345&quot; should be replaced with the number output by the previous command</span></div>
<div>
	&nbsp;</div>
<div>
	<span style="color:#006400;">For details of the meaning of &quot;5 0 * * *&quot; (5 minutes past midnight every day) read the man page for crontab(5) on any Unix/Linux server, or else on the web.</span></div>
<div>
	&nbsp;</div>
<div>
	<span style="color:#006400;">Now, add a command to /etc/rc.local to re-generate the cron job when ESX/ESXi reboots</span></div>
<div>
	<span style="color:#006400;">(1)Edit /etc/rc.local, using a command such as &quot;vi /etc/rc.local&quot;.</span></div>
<div>
	<span style="color:#006400;">(2)At the end of the file, add 3 lines (using &quot;G&quot; then &quot;O&quot; in vi). The first kills crond, the second adds the new cron job to the root crontab file, ad the third restarts crond:</span></div>
<div>
	<span style="color:#006400;">/bin/kill $(cat /var/run/crond.pid)</span></div>
<div>
	<span style="color:#006400;">/bin/echo &#39;5 0 * * * /full/path/to/script arguments/with/full/path &gt; /full/path/to/logfile 2&gt;&amp;1&#39; &gt;&gt; /var/spool/cron/crontabs/root</span></div>
<div>
	<span style="color:#006400;">/bin/busybox crond</span></div>
<div>
	<span style="color:#006400;">(3)Save and exit the editor (Press the &quot;Esc&quot; key then &quot;:wq&quot; then press &quot;Return&quot; in vi)</span></div>
<div>
	<span style="color:#006400;">(4)Run the command &quot;auto-backup.sh&quot; so that the change to /etc/rc.local survives a reboot.</span></div>
<div>
	&nbsp;</div>
<div>
	<span style="color:#006400;">Every time you change the cron job, remember to update /etc/rc.local as well and run the &quot;auto-backup.sh&quot; command to backup the new /etc/rc.local file.</span></div>
<p>
	<span style="color: rgb(255, 255, 255);">文章来源：</span><a href="http://www.codelast.com/" target="_blank" rel="noopener noreferrer"><span style="color: rgb(255, 255, 255);">http://www.codelast.com/</span></a><br />
	<span style="color:#f00;">（2）</span>如<span style="color:#800080;">何在VMware ESX里指定交换文件（swapfile）的不同位置</span>：</p>
<p>
	<font class="Apple-style-span" face="arial, helvetica, sans-serif">你可以在VMware ESX 3.5里为你的虚拟机指定不同交换文件的位置。此位置可以设为是在ESX主机上的一个全局的虚拟机vswp文件。vswp文件是在虚拟机开机时创建的。当你关闭虚拟机后vswp文件被自动删除。此文件只有当主机使用了其所有的物理内存后才使用。</font></p>
<p>
	<font class="Apple-style-span" face="arial, helvetica, sans-serif">vswp文件的大小与你虚拟机RAM相等。你也可以在虚拟机上使用&ldquo;内存预留&rdquo;功能，这将减少vswp文件的大小。 vswp文件的大小 = VM的内存量 &ndash; &ldquo;内存预留&rdquo;的大小。比方说，你给VM的RAM是1024MB，和&ldquo;内存预留&rdquo;512MB，那么该VSWP文件将是512MB。</font></p>
<p>
	<font class="Apple-style-span" face="arial, helvetica, sans-serif">更改此设置，在VI客户上进入Configuration &ndash; Virtual Machine Swap File Location。你也可以更改设置存储vswp文件到另一台数据存储上。但是请记住，如果ESX主机不能连接到你选择的数据存储，那么vMotion和DRS将无法工作。你还可以通过编辑虚拟机的vmx文件来指定其他的位置。</font></p>
<p>
	<br />
	<span style="color: rgb(255, 255, 255);">文章来源：</span><a href="https://www.codelast.com/" rel="noopener noreferrer" target="_blank"><span style="color: rgb(255, 255, 255);">https://www.codelast.com/</span></a><br />
	<span style="color: rgb(255, 0, 0);">➤➤</span>&nbsp;版权声明&nbsp;<span style="color: rgb(255, 0, 0);">➤➤</span>&nbsp;<br />
	转载需注明出处：<u><a href="https://www.codelast.com/" rel="noopener noreferrer" target="_blank"><em><span style="color: rgb(0, 0, 255);"><strong style="font-size: 16px;"><span style="font-family: arial, helvetica, sans-serif;">codelast.com</span></strong></span></em></a></u>&nbsp;<br />
	感谢关注我的微信公众号（微信扫一扫）：</p>
<p style="border: 0px; font-size: 13px; margin: 0px 0px 9px; outline: 0px; padding: 0px; color: rgb(77, 77, 77);">
	<img decoding="async" alt="wechat qrcode of codelast" src="https://www.codelast.com/codelast_wechat_qr_code.jpg" style="width: 200px; height: 200px;" /></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.codelast.com/%e5%8e%9f%e5%88%9bvmware-exsi%e7%a3%81%e7%9b%98%e5%ae%b9%e9%87%8f%e4%b8%8a%e9%99%90/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
