Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1067417
  • 博文数量: 186
  • 博客积分: 4939
  • 博客等级: 上校
  • 技术积分: 2075
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-08 17:15
文章分类

全部博文(186)

文章存档

2018年(1)

2017年(3)

2016年(11)

2015年(42)

2014年(21)

2013年(9)

2012年(18)

2011年(46)

2010年(35)

分类: 系统运维

2015-07-27 15:32:11


   很多时候需要ssh host Command , 但总是搞不清楚转义怎么写,现在总结如下,也算做个备忘吧。

   正确的格式应该是ssh host "command" ,若你的command没特殊字符比如$ 和`和"等,那么就很简单了,但有时候需要执行如下命令,

   ssh 1.db.stg 然后添加权限flush privileges,那都需要转义了。 原本的命令应该是:

  ssh 1.db.stg mysql -S /xxx/mysql.sock -e "flush privileges"  #此时command含有引号需要转义,所以最后应该是:

  ssh -tt 1.db.stg "mysql -S /var/lib/mysql/mysql.sock00 mysql -e \"flush privileges;\"" 

  同理,以下也应该转义:`和$
   ssh 1.db.stg "for x in \`seq 0 18 \` ; do echo instance \$x; /etc/init.d/mysqld_multi start \$x; done" 

""里面支持通配符和'' ,所以下面一例是:

  ssh -tt 1.db.stg "mysql -S /var/lib/mysql/mysql.sock00 mysql -e \"grant all on *.* to web@'%' identified by 'pwd';\""





阅读(2503) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~