PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : آموزشی تغییر زمان و تاریخ در لینوکس از طریق شل



آبجی
10th March 2010, 01:15 PM
برای مشاهده تاریخ و ساعت از این دستور استفاده مکنیم


date

مشاهد زمان مطابق با UTC


date --utc

یا مثلا برای نمایش در فرم سفارشی شده میتوانیم از متغیرهای زیر استفاده کنیم




%% a literal %
%a locale's abbreviated weekday name (Sun..Sat)
%A locale's full weekday name, variable length (Sunday..Saturday)
%b locale's abbreviated month name (Jan..Dec)
%B locale's full month name, variable length (January..December)
%c locale's date and time (Sat Nov 04 12:02:33 EST 1989)
%C century (year divided by 100 and truncated to an integer) [00-99]
%d day of month (01..31)
%D date (mm/dd/yy)
%e day of month, blank padded ( 1..31)
%F same as %Y-%m-%d
%g the 2-digit year corresponding to the %V week number
%G the 4-digit year corresponding to the %V week number
%h same as %b
%H hour (00..23)
%I hour (01..12)
%j day of year (001..366)
%k hour ( 0..23)
%l hour ( 1..12)
%m month (01..12)
%M minute (00..59)
%n a newline
%N nanoseconds (000000000..999999999)
%p locale's upper case AM or PM indicator (blank in many locales)
%P locale's lower case am or pm indicator (blank in many locales)
%r time, 12-hour (hh:mm:ss [AP]M)
%R time, 24-hour (hh:mm)
%s seconds since `00:00:00 1970-01-01 UTC' (a GNU extension)
%S second (00..60); the 60 is necessary to accommodate a leap second
%t a horizontal tab
%T time, 24-hour (hh:mm:ss)
%u day of week (1..7); 1 represents Monday
%U week number of year with Sunday as first day of week (00..53)
%V week number of year with Monday as first day of week (01..53)
%w day of week (0..6); 0 represents Sunday
%W week number of year with Monday as first day of week (00..53)
%x locale's date representation (mm/dd/yy)
%X locale's time representation (%H:%M:%S)
%y last two digits of year (00..99)
%Y year (1970...)
%z RFC-2822 style numeric timezone (-0500) (a nonstandard extension)
%Z time zone (e.g., EDT), or nothing if no time zone is determinable


مثال :


'date '+TIME:%H:%M:%S%nDATE:%m/%d/%y

خروجی بدین شکل است


TIME:13:07:04
DATE:05/12/07


برای مشاهده کلیه متغییرها از دستور زیر استفاده کنید


date --help


تغییر زمان و تاریخ :
برای این کار چندین روش وجود دارد که به دو مورد آن میپردازیم :

1-یکی از راحتترین روش ها که در حافظه هم میماند بدین شکل است :


date -s "month/day/year hour:min:sec"
date -s "05/12/2007 13:07:04"

ترتیب درتاریخ به صورت سال/روز/ماه میباشد.
2-این روش هم بد نیست ولی شیوه نوشتنش من و به شک میاندازه گاهی اوقات


date monthdayhourminyear
date 051213072007


توجه :
این روش ساعت سیستم رو تغییر خواهد داد نه ساعت سخت افزاری(بایوس)
برای مشاهده ساعت سخت افزاری ازاین دستور استفاده مکنیم


hwclock

برای تنظیم ساعت سخت افزاری با ساعت سیستم بدین تریتب عمل میکنیم


hwclock --systohc

همچنین میتوانیم با استفاده از ساعت سیستم , ساعت سخت افزاری رو بر روی UTC تنظیم کنیم


hwclock --utc --systohc


systohc یعنی زمان و تاریخ سخت افزاری رو بر طبق زمان و تاریخ سیستم هماهنگ کن.
hctosys یعنی زمان و تاریخ سیستم رو بر طبق زمان و تاریخ سخت افزاری هماهنگ کن.


تنظیم time zone
در etc/ فایلی بنام localtime بصورت لینکی از فایل اصلی حاوی اطلاعاتی در مورد time zone شما میباشد.این فایل های حاوی نواحی مختلف زمانی معمولا در usr/share/zoneinfo/ قرار دارد البته بسته به نوع توزیع شما ممکن است متفاوت باشد که با استفاده از locate قابل شناسایی است.
اگر فایل localtime به منطقه زمانی مورد نظر شما لینک نشده است میتوانید با پیدا کردن کشور و ناحیه مورد نظر خود در usr/share/zoneinfo/ آن را به localtime لینک دهید.
مثلا برای ایران بدین ترتیب عمل میکنیم :


ln -sf /usr/share/zoneinfo/Iran /etc/localtime


استفاده از NTP (Network Time Protocol)
NTP به یک سرور وصل میشود و ساعت اتمی را میگیرد.
نصب :


apt-get install ntpdate
yum install ntpdate


با ntpdate ساعت سیستم روتنظیم میکنید و از طریق اون ساعت سخت افزاری .

برای تنظیم ساعت و تاریخ باید IP یک سرور را بدانیم و بدین نحو عمل میکنیم :


"ntpdate "server DNS name or IP address

اگر به این پیغام خطا برخورد کردید :



12 Jun 03:05:44 ntpdate[2028]: Can’t adjust the time of day: Invalid argument

بدین نحو عمل کنید :



ntpdate -b pool.ntp.org

b Force the time to be stepped using the settimeofday() system call, rather than slewed (default) using the adjtime() system call. This option should be used when called from a startup file at boot time





برای تنظیم ساعت سخت افزاری


hwclock --systohc


میتوانید از این لینک برای بدست آوردن public time server استفاده کنید
http://www.eecis.udel.edu/~mills/ntp/clock2a.html

برای دقیق نگه داشتن تنظیمات زمان میتوانید از cron job استفاده کنید که دستور زیر را اجرا کند


ntpdate "server name" && hwclock --systohc


آموزش مربوط به Cron job :
اجرای برنامه ها بصورت زمانبندی شده توسط Cron و At (http://www.persianadmins.com/articles/linux/cron_at.html)
زمانبندی اجرای فرامین و برنامه ها با Anacron (http://www.persianadmins.com/articles/linux/anacron.html)

همچنین به این طریق می توانید عمل کنید :


nano /etc/cron.d/ntpdate
55 6 * * * root /usr/sbin/ntpdate pool.ntp.org >/dev/null


در صورتیکه برای چندین دستگاه خواهان تنظیم زمان هستید بهترین راه استفاده از یک NTP server داخلی میباشد.

استفاده از rdate
rdate مشابه ntpdate عمل میکند با این تفاوت که نمیتوان rdate server راه انداخت.


rdate "server name" && hwclock --systohc

استفاده از تمامی مطالب سایت تنها با ذکر منبع آن به نام سایت علمی نخبگان جوان و ذکر آدرس سایت مجاز است

استفاده از نام و برند نخبگان جوان به هر نحو توسط سایر سایت ها ممنوع بوده و پیگرد قانونی دارد