在线代写各种 shell 小脚本:我就想看看都有哪些好玩的需求

calmzhu 4月前 68

不管是

服务器管理的,
或者各位使用 Linux 觉得需要有些功能的。。
都行。


免费写的玩,不要太长的。
最新回复 (60)
  • levelworm 4月前
    引用 2
    这个不错,正好在学 shell 准备拿来练手。。。
  • lxk11153 4月前
    引用 3
    /t/701198
  • aheadlead 4月前
    引用 4
    求大佬:

    stdin: 输入一段字节流,保证每个字节是 [0-9A-F]。每两个字节实际上是十六进制表示的“一个字节”。输入的字节数保证是 2 的倍数。
    stdout: 求输出 binary 。

    例如:

    stdin: 68656C6C6F2C20776F726C640A
    stdout: hello, world

    今天用到了这个,实在一下子想不出,用 py 写了。。。
  • 楼主 calmzhu 4月前
    引用 5
    @lxk11153

    这个 properties 是不是就是纯粹 k:string = v:string 的格式?
  • 楼主 calmzhu 4月前
    引用 6
    @aheadlead
    #!/bin/bash

    python xxxx.py

    手动狗头。

    bash 就是杂烩。纯 bash 干不了太多。都靠各种工具。
  • dorothyREN 4月前
    引用 7
    各种花式删库,删 root
  • teawithlife 4月前
    引用 8
    @aheadlead #3
    $ echo '68656C6C6F2C20776F726C640A' | xxd -r -p
    hello, world
  • aheadlead 4月前
    引用 9
    @teawithlife #7 今天没耐心看这个 manpage 。。。原来少了个-p
  • AlisaDestiny 4月前
    引用 10
    @aheadlead 你这个功能 Linux 本身就有啊,echo 68656C6C6F2C20776F726C640A | xxd -r -ps
  • MZRME 4月前
    引用 11
    dd cc 脚本
  • yuanfnadi 4月前
    引用 12
    把 git commit -> json
    然后再把 json -> commit
  • CismonX 4月前
    引用 13
    写一个 quine (执行的输出结果为程序自身的源码),要求:不能为空,不能接受任何形式的输入(包括读文件系统、读环境变量),不能调用第三方程序(比如 /usr/bin 下面那些)
  • 引用 14
    我来说一个,求各位思路。
    经常需要运行一堆任务,每个都会调用一个 gpu 。希望用 bash 写个任务池,能保持 3 块 gpu 都有任务在跑,直到这一堆都跑完。
    每个 gpu 都跑一个任务就能。
  • sarvatathagata 4月前
    引用 15
    把 https://cmdchallenge.com/上面的每个 challenge 每个都过掉
  • mlhadoop 4月前
    引用 16
    秒杀脚本
    期望能够在指定在某个具体时间点,尽可能快速往指定网址发送 http 请求,实现对卡券等秒杀。
    1. 要求脚本能够定时执行
    2. 能够并发调用 curl 完成对目标 site 的请求,并发数可设置
    3. 对 2 中 curl 兼容 cookie 的设置
  • rrfeng 4月前
    引用 17
    @sarvatathagata
    手机解了十几个…前面题目太简单了
  • rrfeng 4月前
    引用 18
    @everydaystruggle
    shell 并发控制,有点意思。
  • debuggerx 4月前
    引用 19
    现状:linux 服务器开机后一般会停在登陆界面,需要手动输入帐号和密码后才能操作
    需求:希望开机后自动运行 htop,这样服务器即使断电重启后监视器也能方便地直接看到运行状态

    这个脚本我以前写过,但是忘了备份,家里那台服务器挂了以后重装还想要原来的效果,但是想不起来怎么写的开机脚本了,又不想再写一遍……
  • sarvatathagata 4月前
    引用 20
    @rrfeng 那你可以看看 https://oops.cmdchallenge.com/ 和 https://cmdchallenge.com/#/extract_ip_addresses 这样的
  • httplife 4月前
    引用 21
    计算并列出 IP 段?

    例如 sh ip.sh 192.168.0.0/19
    列出所有可用 ip ?网关?
  • ivyliner 4月前
    引用 22
    @httplife ipcalc 了解一下
  • Mutoo 4月前
    引用 23
    需求:对 sudo 进行 MITM 攻击。使用 sudo 时无感知,将用户输入的密码保存到 /tmp/evil.txt 里,例如

    $ sudo vi /etc/hosts
    password:
    Sorry, try again.
    password:
    $ cat /tmp/evil.txt
    wrongpassword
    correctpassword
  • ivyliner 4月前
    引用 24
    @everydaystruggle xargs 了解一下, 可能是个思路
  • xrds7986 4月前
    引用 25
    想封鎖某網站的 ip,需从多個 dns 解析,結果去除重複。
  • zbn 4月前
    引用 26
    一个别人的 bash 脚本,里面有选项 1,2,3,4,5 。接下来还有二级菜单 1,2,3,4,5 。

    怎样写个脚本能自动输入选项,去对他的脚本交互。
  • httplife 4月前
    引用 27
    @ivyliner
    ipcalc 一般 显示 类似:
    Network: 192.168.0.0/24
    Broadcast: 192.168.0.255
    HostMin: 192.168.0.1
    HostMax: 192.168.0.254
    Hosts/Net: 254

    但 HostMin 实际是 网关,

    想要实现的是:
    网关:192.168.0.1
    可用 IP:
    192.168.0.2
    192.168.0.3
    192.168.0.4
    ....一直到最后

    最后能提供 类似
    ip addr add <可用 IP> dev eth0
  • zsdroid 4月前
    引用 28
    运行下脚本,我支付宝就多一块钱。这个需求怎么样
  • yuanbo6 4月前
    引用 29
    可以考虑 tcpdump 抓包衍生出来的工具吧,最好可以后台执行然后自动分片保存,虽然我知道 nohup&的用法,也知道 tcpdump 的-C 参数怎么用,但是我懒得写脚本(手动狗头)
  • lxk11153 4月前
    引用 30
    @calmzhu #4 不是我的需求,你可以和那楼主交流一下
    我的需求: /t/690956 谢谢[doge]
  • kimqcn 4月前
    引用 31
    麻烦帮忙写一个简单的 oracle 客户端脚本,可以创建数据库,编辑表,增删改查。
  • zhve2x4 4月前
    引用 32
    @httplife 网关不一定是 1,我以前经常把网关设置成靠后的 ip
  • stille 4月前
    引用 33
    求帮忙写个脚本

    在当前目录下,查找该目录下,及所有多层级子目录下的 多个文件 (*.txt *.log *.zip 等),并剪切(mv)到指定目录,同时同名文件自动重命名...
  • Dihambo 4月前
    引用 34
    超简单的一个,百度文库签到
  • yorks 4月前
    引用 35
    find 找到出最新创建的文件( 30min 以内)
  • yorks 4月前
    引用 36
    @yorks #34:"https://v2ex.com/t/701389#r_9420334"

    -newerXY

    ```bash
    -type f -newermt "$(date -d "30 min ago" +"%F %T")"
    ```
  • Lufs 4月前
    引用 37
    去除文本文件中的所有的 emoji 表情,并把结果重新写入文件。
  • xurunfei 4月前
    引用 38
    properties 转 yaml 小工具,要求保留注释,有 python 的就更好了
  • 楼主 calmzhu 4月前
    引用 39
    @yuanfnadi
    是指 git commit log 换成 json 格式?

    @CismonX
    关注点是啥,不通过外部输入获取程序执行信息的内容,还是代码输出刚好是自身的特殊逻辑。搜到一个这种

    https://john.dev/posts/2019-02-29-quine.html


    @everydaystruggle
    任务调用的时候能指定 gpu 么。
    这样可不可行?
    1. 每个 GPU 搞个临时文件。存放当前这个 GPU 上正在云项的任务个数。
    2. 然后启动任务用同一个脚本。脚本对要执行的任务进行装饰。 启动时计数器加 1,执行完了-1.。
    3. 设致单个 GPU 允许最大进程数。启动任务时检查,选择当前计时器最低的那个 GPU,如果全满,等待。

    @sarvatathagata
    昨晚过了一阵子。。这个有多少个啊。先 mark


    @mlhadoop
    cookie 来源是啥。不考虑站点反爬虫限制的话。
    先 curl login 一下存 cookie 到文件,然后后台同时多进程 curl 指定这个 cookie 发输出
    定时执行的话,放 crontab 就行了。
    多进程,不用多线程。。


    @debuggerx
    这个不用脚本。。 现在应该都是 systemd 了,直接用 systemd unit file 注册成系统服务并且开机自动启动就可以。

    @httplife
    关注点是啥。通过掩码计算 IP 段,还是扫描局域网里面可用的 IP 地址(以 ping 为依据判断的情况下)
    然后,这个网关应该没法判断。网段内网关地址又没限制。查看本机的网关还有可能。
    @Mutoo
    有 root 权限了?


    @xrds7986
    可以这样翻译需求么
    输入是若干 DNS,输出是这些 DNS 解析后的所有 IP 然后去重。
    封 IP 的操作,在哪做,我理继是拿到 IP 列表后去网关 /防火墙之类的。


    @zbn expect 应答可以么

    @zsdroid

    同求,找到了借我一下,我只要每次转一分就好

    @lxk11153
    你这个也不是你的需求。是几乎所有 IT 人的需求。。。

    @kimqcn
    Oracle  不会。。。没接触过



    @stille
    吃个饭先。。。
  • xrds7986 4月前
    引用 40
    @calmzhu 没错,就是这个意思,脚本提示我输入网址,然后通过若干 DNS 解析,IP 结果输出到一个文本。
  • 楼主 calmzhu 4月前
    引用 41
    @xrds7986

    可以试一下这个 shell 命令。把域名写在文本里面。dig -f 一下。然后从输出中过滤出 DNS 解析记录再提取 IP 去重
    https://paste.ubuntu.com/p/Nc4mZJRTHF/
  • 楼主 calmzhu 4月前
    引用 42
    @stille
    看一下这个
    https://paste.ubuntu.com/p/9QtnkSYnN3/

    先 find 找到所有符合后缀的文件。
    然目标目录中不存在的直接 mv
    存在的则跟据文件原来全路径把“/”替换成“_"重新命名,比如
    /a/b/c/d.sh --> /targetdir/_a_b_c_d.sh
  • 楼主 calmzhu 4月前
    引用 43
    @Dihambo
    这个先放着。百度好像有限制。我之后看看


    @Lufs Unicode 定义的那个 emoji? 查下 Unicode 里面 emoji 对应的码范围。binary 模式直接改字节应该可以


    @xurunfei
    properties 完整规范不熟悉的。我只知道基础的 string=string 这种。

    先跑一下这个命令 find . -name "*.properties" -exec grep -vE '^(\S.*=|#|$)' {} \;
    看一下,去除#开头注释行,空行,string=string 的行还有啥 内容
  • lxk11153 4月前
    引用 44
    @calmzhu #38 哈,那来一个我的: 执行后能有人往 xhgxa.ml 里打钱的 [doge]
  • 楼主 calmzhu 4月前
    引用 45
    @lxk11153 这二维码太讨厌了,挡着我看美女背景板
  • stille 4月前
    引用 46
    @calmzhu 谢谢,可用.
    首行改为了 target_dir=$(dirname $(readlink -f $0))
    就可以在当前文件夹来执行 sh 了.
  • T5eng 4月前
    引用 47
    传入集群 IP 列表<10.0.0.1, 10.0.0.2, 10.0.0.3, ... >,
    通过 shell 脚本配合 Docker 或 Docker Compose 启动 zookeeper 集群和 kafka 集群.

    能做到吗?麻烦吗?
  • 楼主 calmzhu 4月前
    引用 48
    @T5eng
    zookeeperv 不熟。
    K8S 部署过 kafka
    但是这个重点不在 shell 啊。就是集群的安装步骤命令啊。

    然后传一下集群 IP 地址
  • x97bgt 4月前
    引用 49
    跳板机的 IP 和密码都在剪贴板中,运行脚本就可以自动登录。同时在跳板机里进一步登录,进入服务器(命令也是 ssh [email protected],然后输入密码)

    这个有办法实现不?
  • xcstream 4月前
    引用 50
    从国内源 一键下载 python node java 等编程软件
  • 楼主 calmzhu 4月前
    引用 51
    @x97bgt 这个直接用 ssh config 更省事,跳转的化用 ProxyCommand


    @xcstream 这个整个操作系统做镜像吧,亲。
  • x97bgt 4月前
    引用 52
    @calmzhu ssh config 可以监听剪贴板?关键是每次获取的的跳板机 ip 与密码都不一样,手动敲入很烦。
  • 楼主 calmzhu 4月前
    引用 53
    @x97bgt
    可以用 exepct 应答加 剪贴板工具。

    在 mac 测试了下。下面的脚本是可以的
    https://paste.ubuntu.com/p/TgXYp9kmmt/

    先说思路。具体实现要根据你的剪贴板格式,系统,用户名改。还有判断下可能的异常

    1. 用 pbpaste(mac) xclip(linux)等工具获得剪贴板内容。并解析出用户名密码主机地址

    2. expect 中用 spawn 启动 ssh 连接进程。然后自动应答帐户 /密码 /主机确认这些

    3.进入交互模式,也就是 ssh 命令行。
  • baobao1270 4月前
    引用 54
    1 、Minecraft 服务器管理,比如封号踢人什么的
    2 、Lets Encrypt 证书跨服务器同步脚本(用 scp 命令)
    3 、云服务器 Linux DD 到 Windows Server
  • qwerthhusn 4月前
    引用 55
    来个脚本,谢谢 https://paste.ubuntu.com/

    ./replacefile.sh <dirFrom> <dirTo>
    读取 dirFrom 下的文件( dirFrom 下面不会有文件夹,如果有直接报错,只有文件)

    然后在 dirTo 下搜索重名的文件(可能有多层目录),如果在 dirTo 下面正好匹配上且只有一个,就把这个文件替换过去,如果匹配到多个或者没有匹配到,就打印一个警告。

    示例:dirFrom/1.txt
    dirTo/a/b/c/d/1.txt ,就把 dirFrom/1.txt 覆盖到 dirTo/a/b/c/d/下面
  • lllllliu 4月前
    引用 56
    打包文件加,按日期命名并发送邮件。。
    还有 MYSQL 备份脚本?
  • 楼主 calmzhu 4月前
    引用 57
    @baobao1270

    1. Minecraft 这个封装 api (如果有的化)吧
    2. 你都已经答了 scp 吧。
    3. dd + scp 吧。大就多 dd+scp 几次


    @qwerthhusn
    你这是要个文件夹比较工具吧。diff?


    @lllllliu
    没有细节写不了代码。
    打包文件这个,tar + date + email 几个命令串一下就可以了

    MYSQL 备份的化。不大用 mysqldump 到 sql 。大的化走 bin 文件备份
  • 楼主 calmzhu 4月前
    引用 58
    @qwerthhusn
    然后匹配的化。算不算路径输结构。

    比如 dirTo/a/a.txt dirTo/b/a.txt 这种是希望 dirTo 的 copy 过去,还是在 dirB 里面建一个 a/a.txt 的结构。
  • dijia478 4月前
    引用 59
    写个定时任务,每周去 http://117.39.29.75:8085/pricePublic/house/public/index 网站拉下来所有房价,按照每 10 平米一个区间,统计每个区间的均价。随着执行次数,最后汇总出趋势图
  • stebest 4月前
    引用 60
    @aheadlead xxd 命令直接转
  • qwerthhusn 4月前
    引用 61
    @calmzhu 不是文件夹比较工具,说一下情况,你就明白啥意思了
    我是 Java 开发,现在项目本地不能跑,只能放在服务器上,但是 Spring Boot 打包到上传又太久,经常需要改一点代码,更新应用,重启,有问题继续改。。。所以把应用摊开了。对于改动很小时,可以替换个 class 文件

    在本地我都是直接用 everything 搜到那个 XXXService.class YYYService.class,然后替换到 app/classes/com/example/xxx/service/XXXService.class 和 app/classes/com/example/yyy/service/XXXService.class

    现在我想直接把 XXXService.class 和 YYYService.class 放在某个固定的目录
    然后脚本自己去 app/目录找同名的文件(判断应该只有一个匹配,如果有多个肯定就不能这么搞了)然后自动将这两个文件放到指定的目录下
  • 游客
    62
返回