前几天写的参赛demo,用bash写了一个便捷安装的脚本,涉及到了路径相关的判断,从stackoverflow,加上自己的实践整理一下。...简单版 下面是一个最简单的实现,可以解决大多数问题,缺陷是对于软链接显示的是软链接所在的目录 lineos:false 1 2 #!...bin/bash DIR="$( cd "$( dirname "$0" )" && pwd )" 完善版 这个版本解决了使用ln -s target linkName创造软链接无法正确取到真实脚本的问题
x1文件中每行第一个域的全部数据加入到/backup目录下的bak01.txt文件内; (3)每逢星期一下午5:50将/data目录下的所有目录和文件归档并压缩为文件:backup.tar.gz;...写一个脚本将目录下大于100kb的文件移动到/tmp下 find ./ -size +100k -exec mv {} /tmp \; 11....至少注意文件锁,读锁与写锁 24. 写脚本实现,可以用shell,perl等。...脚本实现把/tmp/目录下所有创建超过7天的文件删除 find /tmp -mtime +7 -exec rm -rf {} \; 26....设计一个shell程序,在2012年12月23日凌晨3点备份并压缩前一天/svn目录的所有内容,存放在/root/bak目录里,且文件名为如下形式svn.2008.05.06.tar.gz,试写脚本。
作者:日行一善 # 官网:www.linkops.cn # # 日期:2017/10/20 # 介绍:根据IP地址查询所在地...$1" == "-i" ];then cha $2 elif [ "$1" == "-q" ];then firewal else echo "-f + 文件...批量显示ip所在地" echo "-i + ip地址 显示ip所在地" echo "-q 显示尝试登陆此服务器的ip所在地" fi 日期:2017.../10/20 介绍:根据IP地址查询所在地,可根据配置文件或lastb批量查询 效果图: 二.使用 适用:centos6+ 语言:中文 注意:需要联网 下载 wget https://raw.githubusercontent.com.../goodboy23/shell/master/jobs/ip_location.sh 执行 bash ip-location -i 8.8.8.8
Shell 是用户访问 Unix 操纵系统的接口。它接收用户的输入,然后基于该输入执行程序。程序执行完后,结果会显示在显示器上。 Shell 就是运行指令、程序和 Shell 脚本的运行环境。...Bourne shell通常是安装在大多数版本的 Unix 中的 /bin/sh 目录。由于这个原因,在不同版本的 Unix 上也会选择这种 Shell 来编写脚本。...Shell 脚本有条件语句(A 大于 B)、循环语句、读取文件和存储数据、读取变量且存储数据,当然,Shell 脚本也包括函数。 Shell 脚本和函数都是翻译型语言,所以他们并不会被编译。...在后面的部分,我们会尝试写一些脚本。他们是一些写有命令的简单文本文件。 脚本例子 假设我们创建一个名为 test.sh 的脚本。注意所有脚本的后缀名都必须为 .sh。...注意:如果想要执行当前目录下的脚本,需要使用如下方式 .
如果是要获得当前执行的脚本的所在目录位置,那么需要使用sys模块的sys.path[0]变量或者sys.argv[0]来获得。...更特别地,如果你用py2exe模块把Python脚本编译为可执行文件,那么sys.path[0]的输出还会变化: 如果把依赖库用默认的方式打包为zip文件,那么sys.path[0]会输出C:\test...正确的方法 但以上这些其实都不是脚本文件所在目录的位置。...: os.getcwd() “C:\test”,取的是起始执行目录 sys.path[0]或sys.argv[0] “C:\test\getpath”,取的是被初始执行的脚本的所在目录 os.path.split...(os.path.realpath(__file__))[0] “C:\test\getpath\sub”,取的是file所在文件sub_path.py的所在目录 参考这里
shell脚本中的逻辑判断: 逻辑判断表达式:if [ $a -gt $b ]; if [ $a -lt 5 ]; if [ $b -eq 10 ]等 -gt (>); -lt(=);...a=1 那么 a 就不>3 所以就不满足条件,就是else 第三种格式:if …; then … ;elif …; then …; else …; fi 文件目录属性判断: 【 if file 】 判断是否是普通文件...,切存在 【-d file 】判断是否是目录,且存在 【 -e file 】判断文件或目录是否存在 【 -r file 】判断文件是否可读 可写 可执行 = 类似 判断的不同写法:【 -f $f 】||...,或者被删除的话,脚本就会运行出错,出现bug 应该加上一个判断条件 #!...: 在网卡系统服务脚本中,如,/etc/init.d/iptables中就用到了case 在case中,可以在条件中使用“|”,表示或的意思 输入一个同学的分数,判断成绩是否及格,优秀。
很多时候备份通常会使用到基于日期来创建文件夹,对于这些日期文件夹下面又有很多子文件夹,对于这些日期文件整个移除,通过find结合rm或者delete显得有些力不从心。...本文提供一个简单的小脚本,可以嵌入到其他脚本,也可直接调用,如下文供大家参考。 1、脚本内容 [root@SZDB ~]# more purge_datedir.sh #!
案例需求 判断/tmp/run目录是否存在,如果不存在就建立,如果存在就删除目录里所有文件 脚本应用场景: 脚本中对文件和文件夹类型的及权限的判断 解决问题 避免文件或者文件夹的重复建立问题 脚本思路...判断文件夹/tmp/run目录是否存在 存在 删除目录下内容 不存在 退出脚本 实现代码 #!.../bin/bash # #Author: www.zutuanxue.com #Created Time: #Release: #Description: 判断/tmp/run目录是否存在 #1...、判断文件夹/tmp/run目录是否存在 if [ -d /tmp/run ];then #2、存在 删除目录下内容 rm -rf /tmp/run/* else #3、不存在 退出脚本
/bin/bash #保留文件数 ReservedNum=5 FileDir=/data/bak date=$(date "+%Y%m%d-%H%M%S") FileNum=$(ls -l $FileDir
---- 1 文档编写目的 本文主要讲述如何使用Shell脚本判断HDFS文件或目录是否存在,算是一个小技巧吧,这几天做PoC的时候感觉还挺有用的。...Shell脚本测试 3.1 测试路径是否存在 3.2 测试目录是否存在 3.3 测试文件是否存在 4....比如判断HDFS上的某个文件目录是否存在,可以执行如下命令: hadoopfs -test -d $path #判断目录是否存在 hadoopfs -test -e $path #判断路径(文件或者目录...)是否存在 3 Shell脚本测试 3.1 测试路径是否存在 1、准备测试目录,包含一个文件和一个文件夹 [root@bigdata60 ~]# hadoop fs -ls /user/wdtestFound...删除目录或文件等操作,当然还有一些更高级的玩法,这里就不演示了。
1.对于多次的网段进行封禁 2.加入定时任务,定期检查 #!.../bin/bash #获取多次重复的网段 netstat -anptu |awk '{print $5}' |awk -F':' '{print $1}' | sort | uniq |awk -F'....NEW -m tcp -s ${line} --dport 80 -j DROP done < /error-ip.txt #再筛选加入 while read line do #number是重复的次数...,network是要封闭的网段 number=`echo $line |awk '{print $1}'` ip=`echo $line |awk '{print $2}'` network
/bin/bash while read line do echo $line done < filename 示例:要读取的文件我这里四test.txt 首先vi新建一个文件.sh结尾 [root...@uc-crawl01 test]# vi read_file.sh 然后照着上面的方法编写脚本 #!.../bin/bash for line in `cat filename` do echo $line done 还有一种以文件描述符方式的,但是我没怎么用过就不写了,以上三种就是比较常用的shell...读文件的方法 参考:https://blog.csdn.net/qq_48135964/article/details/115450286
最近博客进行了搬家,CDN源发生改变,想着在CDN上将博客所有图片刷新预热一遍,那么问题来了,刷新预热需要得到所有图片地址,于是直接使用Shell脚本递归遍历wp-content/uploads目录先得到图片文件路径...创建Shell脚本 使用vi编辑器,先创建一个vi traveDir.sh文件,复制下面的脚本代码: #!.../traveDir.sh /xxx/wp-content >> 1.txt 后续操作 导出的文件路径可能是/data/wwwroot/xiaoz.me/wp-content/uploads//2019/...11/snipaste_20191110_102750.png这个样子的,直接使用文本工具,将/data/wwwroot/xiaoz.me/批量替换为您自己的域名,然后将URL提交到CDN服务商进行刷新预热...总结 脚本批量导出文件路径 文本工具将站点根目录批量替换为自己的域名 提交URL刷新 脚本比较简单,网上一搜一大把,此文参考了:使用Shell遍历目录及其子目录中的所有文件方法
shell脚本 welcome.sh.x 是二进制格式的加密shell脚本 welcome.sh.x.c 是welcome.sh文件的C源代码。...可以使用file命令查看文件的类型: [root@localhost scripts]# file welcome.sh welcome.sh: POSIX shell...脚本: 现在,让我们执行加密的Shell脚本,确保能够运行: [root@localhost scripts]# ....即在这个到期日期之后,当有人尝试执行Shell脚本时,将收到错误消息。使用shc -e选项创建一个新的加密Shell脚本,指定到期日期。到期日期以dd/mm/yyyy 格式指定。 ...# 删除之前创建的.x , .x.c文件 [root@localhost scripts]# rm -rf welcome.sh.x* # 创建带有过期时间的加密脚本
需求:将用户家目录(考虑到执行脚本的用户可能是普通用户也可能是root)下面小于5KB的文件打包成tar.gz的压缩包,并以当前日期为文件名前缀,例如今天打包的文件为2017-09-14.tar.gz
shell脚本中 '$' 与不同的符号搭配其表示的意义也会不同 特殊标志符 含义 $0 当前脚本的文件名 $n 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。...例如,第一个参数是$1,第二个参数是$2 $# 传递给脚本或函数的参数个数 $* 传递给脚本或函数的所有参数 $@ 传递给脚本或函数的所有参数 $?...上个命令的退出状态 $$ 当前Shell进程ID $() 与 `(反引号) 一样用来命令替换使用 ${} 引用变量划分出边界 注释:$* 和 $@ 都表示传递给函数或脚本的所有参数,不被双引号(" "...)包含时,都以"$1" "$2" … "$n" 的形式输出所有参数。...但是当它们被双引号(" ")包含时,"$*" 会将所有的参数作为一个整体,以"$1 $2 … $n"的形式输出所有参数;"$@" 会将各个参数分开,以"$1" "$2" … "$n" 的形式输出所有参数
问: 如何从Bash脚本本身中获得其所在的目录? 我想使用Bash脚本作为另一个应用程序的启动器。我想把工作目录改为Bash脚本所在的目录,以便我可以对该目录下的文件进行操作,像这样: $ ....但是在以相对路径的方式去执行脚本时,获取的目录信息是相对路径,不能满足其他需要获取绝对路径的场景。 如果要获取绝对路径,可以使用如下方法: #!...测试结果如下: 另外,可以根据第一种方法结合使用 realpath 命令,也可获取脚本所在目录的绝对路径: #!...编程中$(cmd) 和 `cmd` 之间有什么区别 为什么我不能在脚本中使用"cd"来更改目录 为什么在可执行文件或脚本名称之前需要..../(点-斜杠),以便在bash中运行它 shell脚本对编码和行尾符敏感吗
;; *) echo "wrong" shift ;; esac done if test $RM -eq 1;then #$RM=1,则选择的是...--rm命令,RMFILE是--rm后面接的需要操作文件。...if test -e $I;then #-e判断该文件是否存在,然后-f是一般文件,-d是目录文件。..." else [ $DEBUG -eq 1 ] && echo '该文件不存在!'...sed 's/,/ /g'`;do if id $I &>/dev/null;then [ $DEBUG -eq 1 ] && echo "用户名是$I的用户已经存在
清理hdfs小文件shell脚本 #!...-------------" echo "BASH_VERSION: $BASH_VERSION" echo "参数说明: " echo "从外部只传递零个参数时,遍历字典,删除 hdfs 对应日期下的文件目录..." echo "从外部只传递一个参数时,根据指定的 hive 外表,删除 hdfs 对应日期下的文件目录" echo "从外部只传递两个参数时,第一个参数必须是 hdfs-to-hive 的外表名,第二个必须是...当前hive 外表: $hive_ext_tbl, 清除的 hdfs 文件目录是: $path" # hadoop fs -rm -r $path elif [ $# == 2 ]; then...当前hive 外表: $hive_ext_tbl, 清除的 hdfs 文件目录是: $path" # hadoop fs -rm -r $path else echo "Date
下载 jq插件。 Mac 可以直接 brew install jq { "menu": { "id": "file", ...
领取专属 10元无门槛券
手把手带您无忧上云