我有一个命令来检查某个数据库是否存在。
我想在本地并通过远程服务器上的ssh执行此操作。
该命令是这样的:
mysqlshow -uroot | grep -o $DB_NAME我的问题是,如果我可以对两个变量使用相同的命令,
唯一的区别是ssh <remote-server>在1之前?
类似于CLI中的!!变量展开的内容:
LOCAL_DB=mysqlshow -uroot | grep -o $DB_NAME
REMOTE_DB=ssh <remote-host> !!发布于 2014-06-02 11:54:33
也许是这样的?
cmd="whoami"
eval $cmd
ssh remote@host $cmdeval将在本地运行字符串$cmd中的命令。
此外,对于检查表,更安全的做法是通过查询显式地请求表名
SHOW TABLES LIKE 'yourtable';对于数据库:
SHOW DATABASES LIKE 'yourdb';发布于 2014-06-02 12:12:24
您可以在.bashrc中创建一个函数,类似于:
function showrdb() {
ssh remote@host "$1"
}
export -f showrdb然后对.bashrc进行源化,调用类似的函数;
showrdb "command you want to run on remote host"或者,您也可以创建一个包含相同函数(或仅包含ssh行)的shell脚本,并调用脚本如下
./scriptname "command to execute of remote host"但对我来说,第一步的安慰程度就更高了。
https://stackoverflow.com/questions/23993858
复制相似问题