linux腳本列印時間
gettimeofday(取得目前的時間)
相關函數
time,ctime,ftime,settimeofday
表頭文件
#include <sys/time.h>
#include <unistd.h>
定義函數
int gettimeofday ( struct timeval * tv , struct timezone * tz )
函數說明
gettimeofday()會把目前的時間有tv所指的結構返回,當地時區的信息則放到tz所指的結構中。
timeval結構定義為:
struct timeval{
long tv_sec; /*秒*/
long tv_usec; /*微秒*/
};
timezone 結構定義為:
struct timezone{
int tz_minuteswest; /*和Greenwich 時間差了多少分鍾*/
int tz_dsttime; /*日光節約時間的狀態*/
};
上述兩個結構都定義在/usr/include/sys/time.h。tz_dsttime 所代表的狀態如下
DST_NONE /*不使用*/
DST_USA /*美國*/
DST_AUST /*澳洲*/
DST_WET /*西歐*/
DST_MET /*中歐*/
DST_EET /*東歐*/
DST_CAN /*加拿大*/
DST_GB /*大不列顛*/
DST_RUM /*羅馬尼亞*/
DST_TUR /*土耳其*/
DST_AUSTALT /*澳洲(1986年以後)*/
返回值
成功則返回0,失敗返回-1,錯誤代碼存於errno。附加說明EFAULT指針tv和tz所指的內存空間超出存取許可權。
範例
#include<sys/time.h>
#include<unistd.h>
main(){
struct timeval tv;
struct timezone tz;
gettimeofday (&tv , &tz);
printf(「tv_sec; %d\n」, tv,.tv_sec) ;
printf(「tv_usec; %d\n」,tv.tv_usec);
printf(「tz_minuteswest; %d\n」, tz.tz_minuteswest);
printf(「tz_dsttime, %d\n」,tz.tz_dsttime);
}
執行
tv_sec: 974857339
tv_usec:136996
tz_minuteswest:-540
tz_dsttime:0
Ⅱ 請告訴幫忙寫個linux腳本,實現機器時間輸出到time.txt文本上
#!/bin/sh
#telnet 方式登錄
#根據環境的不同,後邊的截取你自己改改吧。
(sleep 1
echo username #用戶名字
sleep 1
echo passwd #用戶密碼
sleep 1
echo $HOSTNAME #執行顯示伺服器名
sleep 1
echo `date` #獲取當前時間
sleep 2
)|telnet 127.0.0.1 | sed -n '/\$/p' | awk -F"$" '{print $2}' >> times.log
Ⅲ linux:shell 腳本 如果判斷當前時間 是不是12點之前。
用date命令先取得當前的時間(僅取小時數) : date '+%H' #按24小時製取hour (00..23)
然後與12進行比較,判斷是不是12點之前
參考腳本代碼:
#!/usr/bash
hh=`date'+%H'`
if[$hh-gt12]
then
echo"$hhbehind12"
else
echo"$hhinfrontof12"
fi
Ⅳ linux腳本時間變數調用
你的變數定義格式有誤,變數調用系統命令時的格式:
TIME=$(date-d'1dayago'"+%Y%m%d")
或
TIME=`date-d'1dayago'"+%Y%m%d"`
#推薦使用第一種方式,看起來比較直觀也容易避免一些問題
完整的腳本如下:
在/root/目錄下創建名為 tar_log.sh的sh文件
#!/bin/bash
TIME=$(date-d'1dayago'"+%Y%m%d")
logdir="#日誌存放位置"
cd$logdir/
tar-zcfip-${TIME}.tar.gzip-${TIME}.txt
crontab 設置如下:
0000***/bin/bash/root/tar_log.sh
Ⅳ linux運行互動式腳本輸出結果實時屏幕輸出的同時重定向到文件,並屏幕和文件中都有時間戳
時間戳好說,每日輸出日誌前,先執行date命令即可。要實現輸出文件同時列印屏幕只需要在原命令後加管道符,然後接tee 命令再定向到輸出文件。tee命令可以把管道符號前的輸出作為結果文件的輸入同時,列印屏幕。
tee 可以加參數,以追加方式輸出到文件。如tee -a xxx
Ⅵ Linux如何通過腳本,不停地telnet一個IP,記錄telnet成功的時間並輸出
Telnet本身對另一台伺服器檢查時,容易退不出來。使用Nmap比較合適,然後寫個如下腳本,變更IP及相應的埠及Sleep的時間就可以達到目標。
如下參考:
#!/bin/bash
#Purpose:checkipport
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
exportPATH
#Checkifuserisroot
if[$(id-u)!="0"];then
echo"Error:Youmustberoottorunthisscript"
exit1
fi
Cur_Dir="$(cd-P"$(dirname"${BASHSOURCE[0]}")"&&pwd)"
Cur_Time="$(date+%Y%m%d%H%M%S)"
Dest_Ip=172.16.3.19
Dest_Port=22
if[!-f/usr/bin/nmap];then
yum-yinstallnmap
else
:
fi
functionCheck_Port(){
Port_State=$(nmap-P0-sS-p${Dest_Port}${Dest_Ip}|awk'/STATE/{getlinev;printv}'|awk'{print$2}')
if[X${Port_State}==X'open'];then
echo"${Dest_Ip}${Dest_Port}isopen">>${Cur_Dir}/status.txt
echo"${Cur_Time}">>${Cur_Dir}/status.txt
else
echo"${Dest_Ip}${Dest_Port}isfailure">>${Cur_Dir}/status.txt
echo"${Cur_Time}">>${Cur_Dir}/status.txt
fi
}
whiletrue;
do
Check_Port
sleep3
done
Ⅶ 如何在linux顯示日期
顯示時間:年/月/日。
-d參數 ,說明要顯示的是後面的字元串表示的時間,"1 day ago" 說明是1天前的時間。
date "+%Y-%m-%d %H-%M-%S "這樣才是顯示時間 +後都畝銷滲是時間格式。
例如:
date +%Y%m%d //顯示前天年月日
date +%Y%m%d --date="+1 day" //顯示前一天的日期
date +%Y%m%d --date="-1 day" //顯示後一天的日期
date +%s //從 1970 年 1 月 1 日 00:00:00 UTC 到目迅脊前為止的秒數(時間戳)
(7)linux腳本列印時間擴展閱讀:
Linux不僅系統性能穩定,而且是開源軟體。其核心防火牆組件性能高效、配置簡單,保證了系統的安全。在很多企業網路中,為了追求速度和安全,Linux操作系統不僅僅是被網路運維人員當作伺服器使用,Linux既可以當作伺服器,又可以當作網路防火牆是Linux的 一大亮點。
Linux與其他操作系統相比 ,具有開放源碼、沒有版權、技術社區用戶多等特點 ,開放源碼使得用戶可以自由裁剪,靈活性高,功能強大,成本低。尤其系統中內嵌網路協議棧 ,經過適當的配置就可實現路由器的功能。這些特點使得Linux成為斗晌開發路由交換設備的理想開發平台。
Ⅷ 求linux下一個腳本,顯示時間和日期,列出所有的登錄用戶,顯示系統的更新時間
簡單寫了個,希望能夠幫到樓主
#!/usr/bin/bash
LogFile="file.log"
date >> $LogFile
finger >> $LogFile
uptime >> $LogFile
exit