首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

在当前bash(sh)执行脚本和注册函数

在研究《管理Python虚拟环境的脚本》时,我们使用了source指令而没有使用sh或者bash执行脚本,就是因为source指令可以让脚本在当前bash(sh)执行;而sh或者bash则会新启动一个...source source test.sh $$ processInfo: 40883 bash 可以见得没有启动新的bash程序。 source还可以让自动注册脚本的函数。...比如上面指令让脚本的findParentID方法可以直接被使用。...-o -n "${ZSH_VERSION:-}" ] ; then hash -r 2> /dev/null fi 如果我们使用bash执行,则因为虚拟环境会在新启动的bash存在,并会快速退出...所以如果我们希望脚本对当前bash有所影响,就要使用source去执行脚本;如果不希望影响当前bash,则可以使用bash或者sh去执行。 需要注意的是,bash并不等价于sh。

13510

Linux 结合 inotify 和 rsync 实现文件动态同步

/bin/bash # inotifywait -mrq -e delete,close_write,moved_to,moved_from,isdir /longshuai |\ while read...这些遗漏掉的文件由于未被监控到,所有监控的后续操作都不会执行,例如不会被rsync同步。...该方法是将inotifywait得到的事件记录到文件/etc/inotifywait.log,然后在死循环中判断该文件,如果该文件不为空则调用一次rsync进行同步,同步完后立即清空inotifywait.log...如果没有监控到事件,inotifywait.log将是空文件,此时循环将睡眠1秒钟,所以该脚本并不是百分百的实时,但1秒钟的误差对于cpu消耗来说是很值得的。...另外,脚本inotifywait命令的后台符号"&"绝不能少,否则脚本将一直处于inotifywait命令阶段,不会进入到下一步的循环阶段。

1.6K20

Linux下监控文件变化并抓取系统运行参数

当发生异常时已经将发送失败的信息打印到了日志文件。 异常不定期的发生。 针对这个问题,手动的跟踪肯定不现实。因此,需要通过脚本监控日志文件的变化,且在变化的瞬间捕获系统运行参数。...在此次需求,需要使用inotifywait inotifywait命令使用简介: inotifywait尤其适用于在脚本中等待某事件的发生,并可基于特定的事件执行相应操作。...如将其用于脚本监控某指定目录的文件上的修改、新建、删除、属性信息的改变,而后使用rsync命令将某事件对应的文件同步至其它主机上。..., 可以给inotifywait添加-m参数, 并通过管道添加while循环 #!...' ) echo $tomcatport echo 'wait' inotifywait -m -e close_write $DIR --format "%w%f" | while read FILE

5.1K00

使用WebP图片加快您网站访问速度

-c 'commands' {} \; 在这种情况下,-exec参数将需要多个命令来搜索和转换图像: bash:此命令将执行一个小脚本,如果文件不存在,将生成该文件的.webp版本。...-i选项将告诉grep忽略大小写,-E将指定grep应该使用扩展正则表达式,--line-buffered告诉grep将匹配的行传递给while循环inotifywait -q -m -r --format...g|png)$' --line-buffered 接下来,我们将使用read命令构建一个while循环。...; do # commands done; 让我们将这个循环与我们脚本的其余部分结合起来: inotifywait -q -m -r --format '%e %w%f' -e close_write...g|png)$' --line-buffered \ | while read operation path; do # commands done; while循环检查完事件后,循环内的命令将采取以下操作

5.5K40

inotify+rsync实现实时同步

: (主要) 在被监控的文件或目录上等待特定文件系统事件(open close delete等)发生,执行后处于阻塞状态,适合在shell脚本中使用 inotifywatch: 收集被监控的文件系统使用的统计数据...(open close delete等)发生, 执行后处于阻塞状态,适合在shell脚本中使用 inotifywatch :收集被监控的文件系统使用的统计数据,指文件系统事件发生的次数统计。.../bin/bash inotifywait -mrq /data --format "%w%f" -e create,delete,moved_to,close_write|\ while read line...: for循环会定义一个条件,当条件不满足时停止循环 while循环:只要条件满足就一直循环下去 2.3.4 对脚本进行优化 #!...循环语句编写的脚本停止方法(kill) 01. ctrl+z暂停程序运行,kill -9杀死 02.

3.5K00

inotify+rsync实现实时同步

: (主要)    在被监控的文件或目录上等待特定文件系统事件(open close delete等)发生,执行后处于阻塞状态,适合在shell脚本中使用 inotifywatch:   收集被监控的文件系统使用的统计数据...(open close delete等)发生,       执行后处于阻塞状态,适合在shell脚本中使用 inotifywatch :收集被监控的文件系统使用的统计数据,指文件系统事件发生的次数统计。.../bin/bash inotifywait -mrq /data --format "%w%f" -e create,delete,moved_to,close_write|\ while read...:   for循环会定义一个条件,当条件不满足时停止循环   while循环:只要条件满足就一直循环下去 2.3.4 对脚本进行优化 #!...循环语句编写的脚本停止方法(kill)   01. ctrl+z暂停程序运行,kill -9杀死        02.

1.5K00

Linux rsync同步操作和inotify实时同步 、 Cobbler装机平台 (SERVICE06—-DAY21)

rsync操作选项 – -n:测试同步过程,不做实际修改 – –delete:删除目标文件夹内多余的文档 – -a:归档模式,相当于-rlptgoD – -v:显示详细操作信息 – -z:传输过程启用压缩...]# ls /usr/local/bin/inotifywait #验证是否有该程序 inotifywait监控 • 基本用法 – inotifywait [选项] 目标文件夹 • 常用命令选项...– -r,递归监控、包括子目录及文件 – -q,减少屏幕输出信息 – -e,指定监视的 modify、move、create、delete、 attrib 等事件类别 三 书写一个shell脚本...循环解决重复性的操作 for 循环:适合书写有次数的循环 for i in 值列表 do 重复执行的代码 done while 循环: 适合书写不限次数的循环 while.../bin/bash while inotifywait -rq /todir/ do rsync -av –delete /todir/ root@192.168.4.207:/opt/ done

51930

网络服务—RSYNC(映射nobody)

,才能实现单向同步;通过inotify实时监控,调用脚本实现远程数据实时单向同步也就是说当源服务器数据数据发生变化时,源服务器触发脚本,才可以自动执行备份命令,否则不同步;此时源服务器先使用ssh协议免密码登录备份服务器备份服务器再使用...S1上操作:利用rsync+inotifywait结合脚本实现单向实时同步cd /rootS1:源服务器(基准服务器)原理:目标目录与源目录直接比较下载功能脚本,附带delete,这个选项只能用于下载vim.../bin/basha="inotifywait -mrq -e create,delete,move,modify,attrib /filesrc"$a | while read directory event...@192.168.3.13/web /filedst'done拓展:--delete:删除本地比服务器多出来的文件(源地址没有,目标地址有的删掉)图片将脚本放入后台实现实时同步:nohup bash -...x src.sh &#要回到root家目录下再执行此命令,否则可能报错将脚本放入后台,bash -x的功能就是执行脚本的命令时,会先把脚本的命令输出出来,然后通过nohup命令将执行脚本信息的返回值以日志的形式输出追加到当前目录

90200
领券