cmd=”sudo date -s \”$1\””; ssh mrdTomcat@*.*.*.* “$cmd”

以此系统审计,记录什么用户,在怎么着日子,做了怎么着操作。
然后将查到的音讯记录到三个文本里。

date – print or set the system date and time

except与bash命令结合能够达成文件的批量上传,以及命令的批量推行,减弱工作量

是或不是蒙受过无数难点 ssh远程设置时间时,2018-07-12 11:12:13
参数中的空格会捣乱,导致识别不了前边的参数,只好设置到时间,此参数的双引号也是必须的

一. 配置

Display the current time in the given FORMAT, or set the system date.


消除办法也有过多 比如拆分设置,先date -s 日期 再date -s 时间

 

成效:以给定的格式突显当前光阴,或设置系统日期。

可是上述形式能够健全化解,正是前后加个转义 把双引号转义赋值再采取cmd=”sudo date -s \”$1\””; ssh mrdTomcat@*.*.*.*澳门金沙国际 , “$cmd”

  1. 在/etc/profile 文件的尾声,添加如下2行代码:

语法:date [OPTION]… [+FORMAT]

一.、文件的批量上传

确立四个剧本三个是与linux主机自动交互的expect脚本,另两个是控制循环执行的for脚本

vim sendfile.exp

#!/usr/bin/expect

if { $argc != 3 } {

#ben di wenjian dao yuan duan de mulu

puts “usage: expect $argv0 file host dir”

exit

}

#define var

set file  [lindex $argv 0]

set host [lindex $argv 1]

set dir [lindex $argv 2]

set timeout 300

#linux远端用户的密码 

set password “admi@whduc”

#复制本地的文书到远端的目录

spawn scp -P22 -rp $file  root@$host:$dir

expect {

“yes/no”  {send “yes\r”;exp_continue}

“*password” {send “$password\linux远程ssh一键设置服务器时间,命令详解。r”}

}

expect eof

 

参数:
 -d<字符串>:突显字符串所指的日子与时光。字符串前后必须抬高双引号; 

cat filesend_xunhuan.sh

#!/bin/bash

#通过那几个循环脚本与上方的expect脚本联合将当和姑件上传到各种服务器

if [ $# -ne 2 ]

then

echo $”USAGE:$0 file dir”

exit 1

fi

#huo qu yao zhi xing de  can shu

file=$1

dir=$2

#tian jia yao pi liang zhixing de zhu ji de biao dan

for i in 84 85 249 250 252 253 254

do

expect sendfile.exp  $file 172.16.11.$i “$dir”

done

用法实例:bash filesend_xunhuan.sh zabbix_langchao.sh /tmp


 

        -s<字符串>:依照字符串来安装日期与时光。字符串前后必须抬高双引号;

贰 、文件的批量履行

亟待建立四个本子一个是expect脚本,里边控制等待与linux的相互,另三个是循环脚本,循环在一一主机执行命令。

vim excute.exp  #内容如下所示

#!/usr/bin/expect

#参数个数的操纵

if { $argc != 2 } {

puts “usage: expect $argv0 ip command”

exit

}

#概念变量

set ip  [lindex $argv 0]

set cmd [lindex $argv 1]

set password “admi@whduc”

#安装交互等待的小时,倘使脚本等待linux时间太久,提出此值设置大学一年级点。(尤其是在在linux主机执行大的剧本时,提出调大)

set timeout 300

#履行的指令和格式如 ssh的通令

spawn ssh root@$ip $cmd

expect {

“yes/no”  {send “yes\r”;exp_continue}

“*password” {send “$password\r”}

}

expect eof


vim  com_excute_cunhuan.sh

#!/bin/bash

# 判断脚本前边跟的参数的多寡,要是不符则提醒使用情势

if [ $# -ne 1 ]

then

echo $”USAGE:$0 cmd”

echo “Example:  bash com_excute_cunhuan.sh source
/tmp/zabbix_langchao.sh”

exit 1

fi

#获得要推行的命令

cmd=$1

#因而for循环,循环在不一样的主机执行脚本

for i in 84 85 249 250 252 253 254

do

expect excute.exp 172.16.11.$i “$cmd”

done

用法示例: bash com_excute_cunhuan.sh “source
/tmp/zabbix_langchao.sh”


 

格式字符串:

export HISTORY_FILE=/var/log/`date ‘+%Y%m’`.log 

%H 小时,24小时制(00~23) 

export PROMPT_COMMAND=’{ date “+%Y-%m-%d %T ##### $(who am i |awk
“{print \$1\” \”\$2\” \”\$5}”)  #### $(history 1 | { read x
cmd; echo “$cmd”; })”; } >> $HISTORY_FILE’ 

%I 小时,12小时制(01~12) 

累加完毕保存退出。这样任何操作命令都会在/var/log/日期.log中看看。还能协调定义目录或许文件。让外人找不到
只同意自身看。只要求修改

%k 小时,24小时制(0~23) 

 

%l 小时,12小时制(1~12) 

export HISTORY_FILE=/var/log/`date ‘+%Y%m’`.log  那些记录就可

%M 分钟(00~59) 

/etc/profile:
此文件为系统的每一种用户安装环境音信,当用户率先次登录时,该公文被执行.并从/etc/profile.d目录的配置文件中采集shell的设置.

%p 显示出AM或PM 

 

%r 突显时间,12小时制(hh:mm:ss
%p) 

[[email protected]
~]#. /etc/profile 或者  
[[email protected]
~]#source /etc/profile

%s
从一九六八年十一月22日00:00:00到最近经历的秒数 

 使更改生效,借使没有报错表明成功了。

%S 显示秒(00~59) 

 

%T 显示时间,24时辰制(hh:mm:ss) 

证后天志里面是或不是有数量

%X 展现时间的格式(%H:%M:%S) 

 

%Z 展现时区,日期域(CST) 

 

%a 星期的简称(Sun~Sat) 

 

%A 星期的齐全(Sunday~Saturday) 

[[email protected]
~]# more /var/log/201107.log

%h,%b 月的简称(Jan~Dec) 

2011-07-21 17:29:08 ##### root pts/2 (192.168.23.250)  #### .
/etc/profile

%B 月的完备(January~December) 

可以看出在那之中早已有数量。

%c 日期和时间(Tue Nov 20 14:12:58
二〇一二) 

 

%d 叁个月的第几天(01~31)

还足以选用

%x,%D 日期(mm/dd/yy) 

 

%j 一年的第几天(001~366) 

 

%m 月份(01~12) 

 

%w 三个礼拜的第几天(0代表礼拜三) 

PROMPT_COMMAND=’{ date “+%Y-%m-%d %T ##### USER:$USER
IP:$SSH_CLIENT PS:$SSH_TTY #### $(history 1 | { read x cmd; echo
“$cmd”; })”; } >>$HISTORY_FILE’

%W
一年的第多少个星期(00~53,周五为率后天) 

指令差别只是结果是均等的。

%y 年的最终八个数字(1998则是99)

 

 

正文出自 “badboy” 博客

格式化输出: date +”%Y-%m-%d” 二〇〇八-12-07 

然后将查到的音信记录到一个文书里。 一. 配置 1. 在/etc/profile
文书的终极,…

出口前几天日子: date -d “1 day ago” +”%Y-%m-%d” 二零一二-11-19 

2秒后输出: date -d “2 second” +”%Y-%m-%d %H:%M.%S” 二〇一二-11-20 14:21.31 

相传中的 1234567890 秒: date -d “1966-01-01 1234567890 seconds”
+”%Y-%m-%d %H:%m:%S” 二零一零-02-13 23:02:30 

普普通通转格式: date -d “2009-12-12″ +”%Y/%m/%d %H:%M.%S” 二零零六/12/12
00:00.00 

apache格式转换: date -d “Dec 5, 2010 12:00:37 AM” +”%Y-%m-%d %H:%M.%S”
二〇〇九-12-05 00:00.37 

格式转换后时间游走: date -d “Dec 5, 2010 12:00:37 AM 2 year ago”
+”%Y-%m-%d %H:%M.%S” 二〇〇七-12-05 00:00.37 

加减操作: 

date +%Y%m%d //显示后日年月日 

date -d “+1 day” +%Y%m%d //突显前一天的日子 

date -d “-1 day” +%Y%m%d //突显后一天的日期 

date -d “-1 month” +%Y%m%d //展现上11月的日子 

date -d “+1 month” +%Y%m%d //展现下7月的日期 

date -d “-1 year” +%Y%m%d //展现前些年的日期 

date -d “+1 year” +%Y%m%d //显示下一年的日子 

设定时间: date -s //设置当前几日子,只有root权限才能设置,其余只可以查看 

date -s 二零一一0523 //设置成20130523,那样会把实际时间设置成空00:00:00 

date -s 01:01:01 //设置具体时间,不会对日期做更改 

date -s “01:01:01 贰零壹叁-05-23” //那样能够设置任何岁月 

date -s “01:01:01 二〇一三0523” //那样能够安装总体时日 

date -s “二零一三-05-23 01:01:01” //那样可以安装总体时光 

date -s “二零一一0523 01:01:01” //那样能够设置任什么时候辰
有时需求检讨一组命令开销的时间,

举例: #!/bin/bash start=$(date +%s) 

nmap man.linuxde.net &> /dev/null end=$(date +%s) 

difference=$(( end – start )) 

echo $difference seconds.

 来自:

相关文章