7月 27

Shell随机数及字符串翻转

完美世界运维开发的一道笔试题,大概意思是0到9中随机取6个数,然后翻转输出。之前写过一个随机生成root密码的脚本,无奈时间长了忘记了。这里总结一下shell中随机数的生成方法。 时间戳 date +%s 获得时间戳,当前到:1970-01-01 00:00:00 相隔的秒数。如果用它做随机数,相同一秒的数据是一样的。在做循环处理,多线程 … Continue reading

3月 04

shell脚本修改服务器root密码

修改服务器root密码脚本,借助配置管理工具可以批量执行。随机生成32为的包含数字,大小写字母及特殊字符的root密码,干掉弱口令。[1] 另外可以用命令生成随机字符串,但是速度较慢 1、生成随机数 echo $RANDOM 2、生成随机字符串 cat /dev/urandom | strings -n C | head -n L cat … Continue reading

8月 31

Shell模拟多线程

UPDATE 20180605: 此种方式存在丢任务的情况,用 parallel 命令做多线程更好更简单 shell不能实现多线程,但是可以通过限制几乎同时放入后台执行的进程数量来模拟多线程,从而达到在提高脚本执行效率的同时又不明显增加负载的作用。 Ping脚本的多线程实现 ip.txt中有9个ip,9个线程,调试模式执行结果 执行时间对 … Continue reading

1月 29

shell脚本单独打包子文件夹

用于备份,比如D盘project目录下有很多个独立的项目,如果直接上传到网盘,文件数量可能会超过限制,上传速度也慢,其实也没有必要,在网盘上浏览单个文件也没有意义。 但是,如果将整个project目录压缩,压缩包会比较大,想看单个项目时又需要将整个project压缩包下载下来,速度会比较慢。百度网盘的在线解压功能也有些鸡肋,貌似只能解压单 … Continue reading

8月 06

shell中处理带空格的文件名

想用xxd批量处理棋谱,shell脚本却总是出错,提示模糊的重定向。直到发现英文命名的wgs棋谱可以正常处理,才意识到是QQ围棋自动保存棋谱文件名中存在空格导致的问题。 解决方法是将变量放在引号之间: 注释掉的部分是尝试用数组解决的代码。最后发现之间处理更方便。顺便记录一下,访问数组的方式 ${arry[键值]}。 参见:http://w … Continue reading