Linuxシステムにはシステム時間とハードウェア時間があります。
システム時間: 一般に、date コマンドを実行するときに表示される時間です。Linux システムでのすべての時間呼び出し (ハードウェア時間に直接アクセスするコマンドを除く) では、この時間が使用されます。
ハードウェア時間: メインボード上の BIOS の時間は、動作を維持するためにメインボードのバッテリーによって電力供給されます。システムの電源がオンになると、この時間を読み取り、それに応じてシステム時間を設定する必要があります (注:システム起動時のハードウェア時間に基づくシステム時間 (特定のシステムおよび関連設定に応じて、タイム ゾーンの変換が行われる場合があります)。
1.現在のシステム時刻を表示します。
[root@surfer ~]#日付
2018年6月26日火曜日10:09:21 CST
2.システム時刻を日付 -s +時刻に設定します。
[root@surfer ~]#日付 -s 10:10:10
2018 年6 月26日火曜日10:10:10 CST
3.システム時刻を設定するときに、日付も設定する必要がある場合は、日付と時刻の値を二重引用符で囲む必要があります
[root@surfer ~]# date -s "2018/8/8 10:00:00"
2018 年8月8 日水曜日10:00:00 CST
4. hw ClockまたはClockコマンドを使用して、ハードウェア時間を確認します。
[root@surfer ~]# hw Clock
火曜日、6月26、2018 10:13:02 - 0.805503秒_ _ _ _ _
[root@surfer ~]#クロック
火曜日、6月26、2018 10:13:07 - 0.507462秒_ _ _ _ _
5.ハードウェア時刻をシステム時刻に書き込みます。
[root@surfer ~]# hw Clock -s
6.システム時間をハードウェア時間に書き込みます
[root@surfer ~]# hw Clock -w
7.時刻同期、Linuxシステムにはntpdateをインストールする必要があります
ntpdateがインストールされているかどうかを確認します: rpm -qa | grep ntpdate
インストールされていない場合は、次のコマンドを実行します: yum install ntpdate
時刻同期コマンド: ntpdate www.pool.net.org 、 ここでwww.pool.net.org はインターネットの標準時刻サーバーです
8. contabコマンド_
スケジュールされたタスクの書き込み形式は、v i /etc/crontabコマンドで確認できます。
[root@surfer ~]# vi/etc/crontab
SHELL=/bin/bash # SHELL 変数はシステムに使用するシェルを指定します
PATH=/sbin:/bin:/usr/sbin:/usr/bin # PATH 変数は、システムがコマンドを実行するパスを指定します
MAILTO=root # MAILTO 変数は、crond のタスク実行情報が電子メールで root ユーザーに送信されることを指定します。MAILTO変数タスク実行情報はユーザーに送信されないことを意味します
# 詳細については 4 crontab を参照してください
# Example of jobdefinition:
# .---------------- minute (0 - 59) #分钟
# | .------------- hour (0 -23) #小时
# | | .---------- day of month (1 - 31) #日期
# | | | .------- month (1 - 12) OR jan,feb,mar,apr … #月份
# | | | | .---- day of week (0 - 6)(Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat #周
# | | | | |
# * * * * * user-name command to be executed
在以上各个字段中,还可以使用以下特殊字符:
星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”
横杠(-):可以用整数之间的横杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
斜线(/):可以用斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。
crontab -l :列出当前用户的crontab文件内容
* * * * */usr/local/gse/agent/bin/gsectl watch
crontab -e :编辑当前用户的crontab文件内容
[root@surfer data]#crontab -e
*/1 * * * * echo"hello world">>/data/code.txt
~
在这里我添加了一个定时任务*/1 * * * * echo"hello world">>/data/code.txt :意思是每一分钟打印一次hello world,并且重定向到了/data/code.txt文件里面,几分钟过后查看code.txt,出现了如下内容,说明这个定时任务已经开始执行
[root@surfer data]# cat code.txt
hello world
hello world
hello world
hello world
hello world
hello world
hello world
hello world
hello world