Henry's Notebook
Many strange things
搜索
菜单
导航
首页
最近更改
随机页面
帮助
Henry's Home
个人资料
个人资料
创建账户
登录
消息
目前您没有通知。请访问您的
讨论页
以查看过去消息。
页面工具
内容页面
讨论
查看源代码
历史
首页
»
页面s
查看“Mntclean”的源代码
←
Mntclean
页面上次由
HenryHu
编辑于13年前
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:emailconfirmed
您可以查看与复制此页面的源代码。
[[Category:脚本]] FreeBSD上,在设备消失之后(例如拔下优盘之后),检查/mnt,并且清理下面内容的脚本。 配合[[devd]]使用。 <source lang="perl"> #!/usr/bin/perl sub logmsg { my ($msg) = @_; $msg =~ s/'/"/g; system("logger '[mntclean] $msg'"); } sub query_dev { my ($name) = @_; $namelen = 0; $ret = ""; $devs = `gpart list | grep Name`; foreach $i (split(/\n/, $devs)) { $i =~ m/.*?Name: (.*)$/; $dev = $1; $j =`glabel status $dev 2>&1`; if ($? eq 0) { foreach $line (split(/\n/, $j)) { if ($line =~ m/^$name /) { if (substr($line, 0, $namelen) == $name) { # In fact, maybe there are several # devices with the same label... # But what can we do... $ret = $dev; } } elsif ($line =~ m/^( *Name) *Status *Components$/) { $namepart = $1; $namelen = length($namepart); } } } } return $ret; } if (not $ARGV[0] =~ m!(.*)?/(.*)!) { print "Format error."; exit(1); } $parttype = $1; $partname = $2; $succ_sound = "/usr/local/share/wesnoth/sounds/arrive.wav"; $err_sound = "/usr/local/share/wesnoth/sounds/bell.wav"; logmsg("$partname removed, type: $parttype"); #foreach (glob("/mnt/*")) #{ # print $_; #} # system("/bin/rm -d /mnt/" . $partname); </source>
返回至
Mntclean
。