Che*_*eso 9 unix shell perl ksh
我一直在谷歌搜索和溢出一点,找不到任何可用的东西.
我需要一个监视公用文件夹的脚本,并在创建新文件时触发,然后将文件移动到私有位置.
我/exam/ple/在unix上有一个samba共享文件夹映射到X:\Windows上.在某些操作上,txt文件将写入共享.我想绑架出现在文件夹中的任何txt文件,并将其/pri/vate放在unix上的私人文件夹中.移动该文件后,我想触发一个单独的perl脚本.
编辑 仍然等待看到一个shell脚本,如果有人有任何想法...将监视新文件,然后运行如下所示的东西:
#!/bin/ksh
mv -f /exam/ple/*.txt /pri/vate
Run Code Online (Sandbox Code Playgroud)
如果我理解正确,你只是想要这样的东西?
#!/usr/bin/perl
use strict;
use warnings;
use File::Copy
my $poll_cycle = 5;
my $dest_dir = "/pri/vate";
while (1) {
sleep $poll_cycle;
my $dirname = '/exam/ple';
opendir my $dh, $dirname
or die "Can't open directory '$dirname' for reading: $!";
my @files = readdir $dh;
closedir $dh;
if ( grep( !/^[.][.]?$/, @files ) > 0 ) {
print "Dir is not empty\n";
foreach my $target (@files) {
# Move file
move("$dirname/$target", "$dest_dir/$target");
# Trigger external Perl script
system('./my_script.pl');
}
}
Run Code Online (Sandbox Code Playgroud)