1.!$<!$是一个特殊的环境变量,它代表了上一个命令的最后一个字符串.如:你可能会这样: $mkdir mydir$mv mydir yourdir$cd yourdir 可以改成: $mkdir mydir$mv !$ yourdir$cd !$ 2.sudo !!以root的身份执行上一条命令 . 场景举例:比如Ubuntu里用apt-get安装软件包的时候是需要root身份的,我们经常会忘记在apt-get前加sudo.每次不得不加上sudo再重新键入这行命令,这时可以很方便的用sudo…
最近遇到“应用复制的命令时在订阅服务器上找不到该行”问题,报错如下: 官方给出的建议是重新同步和初始化订阅,当然,这是一种选择,但是对于动辄上百G的生产库,这种方法会消耗大量的资源和时间.可以通过定位出错数据,选择跳过,等从库追平主库后,修复错误数据方式,达到最终主从数据一致. 解决思路 1. 找到分发任务的事务序列号 获取当前出错的事务序列号有如下方法: 如果是复制分发停止了,那么在错误信息中会显示事务序列号.上图中是‘0x000311CC00013A7300010000000’ 如果复制错误…
许多程序要就对shell脚本中的命令施加一些逻辑控制流程. 结构化命令允许你改变程序执行的顺序.不一定是依次进行的 12.1 使用if-then语句 如下格式: if command then          commands fi if语句会允许if后面的那个命令,如果该命令的退出码的0(代表成功了)位于then部分的命令就会被执行.否则不执行. 例子: #!/bin/bash # if then test if pwd  then echo "pwd success" fi #…
本章讨论bash shell的循环命令for.while和until 13.1 for命令 重复执行一系列命令在编程中很常见. bash shell提供了for命令,允许你创建一个遍历一系列值的循环.每次迭代都使用其中一个值来执行已定义好的一组命令.下面是基本格式 for var in list do command done 在list参数中需要提供迭代中要用到的一系列值.会依次迭代下去.每次迭代中,var会包含列表中要用到的一系列值. do 和 done直接输入的命令可以是一条或多条标准的b…
在使用flume中发现由于网络.HDFS等其它原因,使得经过Flume收集到HDFS上得日志有一些异常,表现为: 1.有未关闭的文件:以tmp(默认)结尾的文件.加入存到HDFS上得文件应该是gz压缩文件,以tmp为结尾的文件就无法使用: 2.有大小为0的文件,比如gz压缩文件大小为0,我们单独拿下这个文件解压发现是无限循环压缩的...这个也不能直接用来跑mapreduce 目前发现上述两种情况,其它还暂未发现.至于出现上述情况还没明确原因,且这两种情况都会影响hive.MapReduce的正常…
创建hosts文件 创建ansible-playbook执行时所用到的hosts文件,例如 /etc/redis/hosts 利用shell命令根据传入的host名和地址写入hosts文件: #sethosts.sh ] >>/etc/redis/hosts count= ];do >>/etc/redis/hosts let count=count+ shift done 调用命令: sh sethosts.sh webservers 10.11.12.13 10.11.12.1…
#!/bin/bash source /etc/profile cd /mnt/workspace/weifeng-ui-pre/ npm i && npm run build rm -rf /mnt/workspace/weifeng-ui-pre/dockerfile/build cd /mnt/workspace/weifeng-ui-pre/dockerfile mv ../build . sudo docker build -t pre-weifeng-ui -f Dockerf…
Java代码调用服务器上的Shell脚本 这里主要是因为我们报表平台有用到用户手工录入的数据作为结果数据且需要纳入saiku去展示 如我们所知,saiku不会自动刷新,所以需要在数据更新接口中调用服务器上的shell脚本 话不多说,上代码: (直接使用Eclipse, run  Java Application ,执行成功后脚本中的输出内容会打印到控制台) package saikuDemo1; import ch.ethz.ssh2.Connection; import ch.ethz.ssh…
第一种方式:hbase shell test.txt test.txt:list 第二种方式:<<EOF重定向输入 我们经常在shell脚本程序中用<<EOF重定向输入,将我们输入的命令字符串作为一个执行程序的输入,这样,我们就不需要在那个程序环境中手工输入命令,以便自动执行我们需要的功能.将hbase的命令嵌入到shell中,可以在shell中如下书写: -------------------------------------- hbase shell << EOF…
-Linux Shell脚本攻略 总结的来说,这本书很实践性和实用性强,都是给的具体的例子,直接可以在终端操作实践,比单纯只看不动手务实多了,另外就是,这本书涵盖的内容也比较广,从文本操作到服务器管理到远程ssh等等,都给出来作者挑选的一些比较经验实用的shell命令和shell脚本,不过也可以看出来,这本书是作者从自身实用的角度来挑选shell命令和脚本,所以覆盖面比较全,但是会感觉有点零碎,比如对于shell的基本语法就不会展开讲,只是会提到,需要有基本的shell底子,另外就是像sed.a…