首页
学习
活动
专区
工具
TVP
发布

数据之美

专栏作者
138
文章
389162
阅读量
63
订阅数
Shell 黑科技之匿名函数实现任务并行化
shell 作为一门系统级别胶水语言,学习成本低,用起来很方便,但是缺点也显而易见:性能问题一直为人锁诟病。所以 shell 也就多用在简单的系统管理等场合,数据处理等等要求比较高的场合一般会选择 java、Python 等功能更强大、性能更好的语言。 最近用shell写了一个小函数,用来在集群间批量执行命令并返回结果: for ip in ips do ssh work@$ip "echo 1; exit" 2>/dev/null done 执行下来功能没啥问题,但是性能却一塌糊涂,6台机器执行将
用户1177713
2018-02-24
1.5K0
Linux Shell 从入门到删除根目录跑路指南
shell 作为一门 linux 下使用广泛的系统语言,语法简单,上手容易,但是想要用好,少犯错误,也不是那么容易的一件事,可谓虽是居家旅行之良药,但也是杀人灭口之利器~ 今天就来聊聊 linux 下一个常见的问题:如何避免误删目录。下文会详细的讲述不同的场景下误删目录,以及相应的解决方案。 1、变量为空导致误删文件 base_path=/usr/sbin tmp_file=`cmd_invalid` # rm -rf $base_path/$tmp_file 这种情况下如果 cmd 执行出错或者返回为空,
用户1177713
2018-02-24
2.1K0
玩转千位分隔符输出
1、Python 1.1 format方法: 2.7版本以上直接用format设置千分位分隔符 Python 2.7 (r27:82500, Nov 23 2010, 18:07:12) [GCC 4.1.2 20070115 (prerelease) (SUSE Linux)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> format(1234567890,',') '1,
用户1177713
2018-02-24
1.6K0
那些 Shell、Awk 中自动隐式类型转换的“坑”
1、问题: 在林林总总的编程语言里,弱类型的语言着实不少,一方面这种“动态类型”用起来很方便,而另一方面则“坑”你没商量~ 常见的 SQL、Shell、Awk 都会遇到各种暗藏的“隐式类型转换”,稍不留神就会“掉坑”。下面就列举一些 shell、awk 里的自动隐式类型转换 case,防止掉坑。 注意 shell、awk 的变量为空 字符串、变量为空 未定义、初始值的隐式转换问题: # shell 下的字典排序比较 root@localhost 10:59:23 /opt/script > [[
用户1177713
2018-02-24
1.4K0
rsync error: protocol incompatibility / mismatch
1、问题 今日在维护集群环境的时候,遇到了一个小问题,rsync 向集群中的机器传输文件的时候报错: protocol version mismatch -- is your shell clean?
用户1177713
2018-02-24
2.6K0
Shell 参数扩展及各类括号在 Shell 编程中的应用
今天看有人总结了 shell 下的参数扩展,但不是很全,恰好以前整理过放在百度空间,但百度空间目前半死不活的情况下对 Google 非常不友好,索性一并转过来方便查阅。 1、bash 中的大括号参数扩展(Parameter Expansion) 假设我们定义了一个变量为: file=/dir1/dir2/dir3/my.file.txt 1.1 bash 下的 split 取“数组”的首、尾: ${file#*/}:拿掉第一条 / 及其左边的字符串:dir1/dir2/dir3/my.file.txt ${
用户1177713
2018-02-24
1.5K0
bash/shell 解析命令行参数工具:getopts/getopt
bash 脚本中,简单点的参数选项,我们可以直接用位置参数 $1 $2 这样来获取处理了,例如下面这段代码片段: optionParam=$1 baseHdfsPath=$2 echo $optionParam|grep -qE '^(-d|-l)$' || usage echo $baseHdfsPath|grep -qE '^/' || usage if [[ $optionParam == "-l" ]] then echo --------------------$startTime----
用户1177713
2018-02-24
10.6K0
玩转 SHELL 脚本之:linux date 知多少?
最近好久没 update 了,一来是近期有点烦人的私事需要处理,二来是工作有点忙,业余时间还要整个 PPT,搜集素材啥的,非常耗时间。。。好吧,这都是借口,其实是人变懒了。。。⊙﹏⊙ 不过我发现最近 1 个月以来,我关注的一些 Blog,一半以上也都没更新了,看来对大家来说年底都是多事之秋呀~ 好了,言归正传,之前有介绍过《linux 系统监控、诊断工具之 top 详解》、《linux 系统监控、诊断工具之 lsof 用法简介》,今天再来介绍一个使用频率很高的 linux 命令:date 对日期进行操作,相
用户1177713
2018-02-24
2.1K0
shell 学习笔记(19)
声明:转载需署名出处,严禁用于商业用途! 1801.关于 nohup 后台运行的问题: nohup就是拒绝hup信号,没什么其他用途, 如果是shopt -s huponexit的话,shell在退出的时候自己把自己所有的子进程都发一个hup信号, 然后就退出了,但是我还没见过哪种发行版会启用这个参数的。 后台就直接加个&就行了:sh 1.sh & ,退出终端并不会终端程序,sleep 9999 &,然后退出,然后再登录,看下是不是还在 除非你shopt -s
用户1177713
2018-02-24
1.1K0
浮点数加法引发的问题:浮点数的二进制表示
1、问题: 之前有同学问过这样一个问题: echo|awk '{print 3.99 -1.19 -2.80}' 4.44089e-16 类似的问题还有在 java 或者 javascript 中: 23.53 + 5.88 + 17.64 = 47.05 23.53 + 17.64 + 5.88 = 47.050000000000004 为什么结果不是 0 或者不相等呢? 如果你不能立马回答出原因,那说明你对浮点数计算的基本知识还不了解。 刚好最近  segmentfault.co
用户1177713
2018-02-24
1.8K0
shell 学习笔记(18)
声明:转载需署名出处,严禁用于商业用途! 1701.大量连接处于 TIME_WAIT 状态的解决方法: netstat -nt 看到大量 TIME_WAIT dmesg 看到 time wait bucket table overflow 解决办法:1、 /proc/sys/net/ipv4/tcp_max_tw_buckets 过小了,设成540000以上 2、 /sys/module/ip_conntrack/parameters/hashsiz
用户1177713
2018-02-24
1.9K0
常用统计分析 SQL 在 AWK 中的实现
最近有需求需要本地处理一些临时的数据,用做统计分析。如果单纯的 MYSQL 也能实现, 不过一堆临时数据这样从 mysql 导来导去还是挺麻烦的,比较理想的选择是本机装个 cygwin 环境,然后可以用 awk 等 shell 工具做即时处理。 本文主要讲述如何在 awk 中实现 SQL 的常用操作,当做个简单的 awk 入门分享。 虽然文中部分 awk 会有其它更简洁高效的 shell 命令去完成,亦或是其它语言去完成, 但这都不在本文的讨论范畴。 注:本文所用到的两个测试文件 user、co
用户1177713
2018-02-24
1.5K0
关于 xargs 参数被截断,tar 文件被覆盖的问题
问题: 目录下共 2W+ 个小文件: $ find . -type f | wc -l   20083   如果我们这样打包,会爆出 "Argument list too long" 的错误: $ tar zcf test.tar.gz *   -bash: /bin/tar: Argument list too long   这是由于 * 展开后参数长度超过系统参数 ARG_MAX 的限制 为了不报这种错误,我们考虑用find的参数扩展来试试: $ find . -t
用户1177713
2018-02-24
1.6K0
shell 学习笔记(17)
声明:转载需署名出处,严禁用于商业用途! 1601.关于rsync相同文件后 du 大小不一样的问题: 不一样大小很正常,因为文件系统的block不一样,或者文件系统底层用了压缩什么的。 因为du是块大小,ls是文件的实际大小,系统的块大小一般为4KB, 所以du的文件一般比ls的结果要大,而且系统块大小可以更改。 1602.查看系统块大小: tune2fs -l /dev/sda1 | grep Block 1603.vi -u NONE -N 打开超大文件:
用户1177713
2018-02-24
1.1K0
shell 脚本多进程创建 mysql 测试数据
# ------------------------------------------------------------------ #创建 taskNum * perFileRecord 条测试数据,taskNum 为进程并发数,最好与你的cpu个数一致 #数据字段:| id | sex | age | name | email | start_date | end_date | #id int 唯一,sex enum,age 0~100,name、email基本唯一,start_date 0~100
用户1177713
2018-02-24
9490
shell 学习笔记(16)
转载请注明出处: https://cloud.tencent.com/developer/user/1177713/activities 注:以前的1-15连载部分放在百度空间, 目前百度空间已不支持
用户1177713
2018-02-24
1.4K0
没有更多了
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档