bash脚本金和利息用expect做批量化布署脚本,linux远程ssh一键设置服务器时间

By admin in 美高梅手机版4858 on 2019年3月28日

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\r”}

}

expect eof

 

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

cat filesend_xunhuan.sh

#!/bin/bash

#通过这些循环脚本与上方的expect脚本联合将当麻芋果件上传到各样服务器

if [bash脚本金和利息用expect做批量化布署脚本,linux远程ssh一键设置服务器时间。 $# -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_美高梅手机版4858 ,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
从一九七零年八月三十一日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
2013) 

 

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

还足以采纳

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

 

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

 

%m 月份(01~12) 

 

%w 1个礼拜的第几天(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 年的末梢八个数字(1997则是99)

 

 

本文出自 “badboy” 博客

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

然后将查到的音信记录到二个文本里。 一. 配置 1. 在/etc/profile
文本的尾声,…

出口昨日日子: date -d “1 day ago” +”%Y-%m-%d” 2011-11-19 

2秒后输出: date -d “2 second” +”%Y-%m-%d %H:%M.%S” 贰零壹叁-11-20 14:21.31 

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

一般说来转格式: date -d “2010-12-12″ +”%Y/%m/%d %H:%M.%S” 二零零六/12/12
00:00.00 

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

格式转换后时间游走: date -d “Dec 5, 贰零零玖 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 //显示上111月的日子 

date -d “+1 month” +%Y%m%d //显示下11月的日期 

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

date -d “+1 year” +%Y%m%d //呈现下一年的日期 

设定时间: date -s //设置当前时刻,唯有root权限才能安装,其余只可以查看 

date -s 二〇一二0523 //设置成二〇一三0523,那样会把具体日子设置成空00:00:00 

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

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

date -s “01:01:01 二〇一二0523” //那样可以设置总体光阴 

date -s “2013-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.

 来自:

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2019 美高梅手机版4858 版权所有