Articles of unix

bash脚本来检测文件何时添加到文件夹和命令exec

我正在尝试编写脚本来检测文件何时添加到特定的文件夹,并使用最后一个文件添加名称运行命令。 我特别想做的是为每个文件添加一个特定的文件夹中创build一个QR码。 所以我需要做的是:当一个文件被添加到文件夹时检测,抓住基本文件名并传递给qrencode -o filename.png mysite / filename.ext 理想情况下,它有一个开机启动的cronjob。 我正在读关于使用inotify的一些东西,但我不知道如何做到这一点。 非常感谢!

bash:多次尝试login失败后阻止用户

我有个问题。 有人试图进入我的服务器,而且经常发生。 例如: Aug 19 14:11:42 oplot sshd[18373]: input_userauth_request: invalid user oracle Aug 19 14:11:42 oplot sshd[18372]: pam_unix(sshd:auth): check pass; user unknown Aug 19 14:11:42 oplot sshd[18372]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=211.38.137.44 Aug 19 14:11:44 oplot sshd[18372]: Failed password for invalid user oracle from 211.38.137.44 port 36 841 ssh2 Aug 19 […]

如何完全卸载MySQL?

删除所有设置。 删除所有数据库。 删除所有复制设置。 我运行什么命令来删除它?

useradd拥有755个权限

我想设置主目录权限为755当我通过useradd添加用户。 我怎样才能做到这一点? 谢谢。

SSH不会将stdoutredirect到本地terminal

我有一个csh脚本中的以下相关行: #!/bin/csh -xv set dvar = `date +"^%m\/%d\/%y"` set filedate = `date +%b%d%Y` set grepstring = "grep "\"$dvar\"" </home/user/log/logfile" set outstring = ">> serverlog_$filedate.txt" grep "$dvar" <logfile >serverlog_$filedate.txt ssh SERVER1 \"\"$grepstring\"\" $outstring 本地日志文件中的第一个grep工作得很好,但SSH grep将其输出写入远程目录。 该行出来的batch file为: ssh SERVER1 ""grep "^01\/05\/10" <home/user/log/logfile"" >> serverlog_Jan052010.txt 当我键入它(当然less用一套引号),它工作正常,我只是不能从一个csh脚本得到这个工作。 你将如何得到这个命令输出到本地机器上的指定文件? 编辑:这是最后的结果工作感谢womble: #!/bin/csh set dvar = `date +"%m\/%d\/%y"` set filedate = […]

Bash和阻止进程

你能帮我用Bash语法来实现以下function吗? 运行阻止进程而不阻止其他脚本的执行。 运行标准的“非阻塞”进程(例如lsof)。 “重新join”阻止进程,以便^ C将停止该进程,然后结束脚本的执行。

我如何recursionvalidation给定的子目录内的权限?

我想validation/ foo / bar中没有任何内容是chmod 777.或者,我想确保/ user / group拥有/ foo / bar中的任何内容。 有什么办法可以recursion地validation给定的子目录中的权限,以确保没有任何安全漏洞? 请注意,我不想将所有权限更改为特定的内容,也不希望将所有者更改为特定的内容,因此recursion的chmod或chown将不会执行此操作。 谢谢!

Unix会在断开会话后停止后台运行进程

说如果我在后台运行一些命令: ./my_script.sh > /dev/null & 我立即closures腻子(相当于断开当前会话的权利?)。 后台进程会完成吗? 请指教,谢谢。

UNIX的cron作业不能在所有的日程表上运行,就像它正在运行以前的版本一样?

我们有一个通过cron运行脚本的solaris框。 它预定为00 5,19 * * *。 问题是,脚本运行在19(晚上7点),但没有在上午5点运行。 没有错误,日志中没有任何错误,就像它没有运行一样。 crontab -l显示应该运行的正确时间表。 事情是,join5am运行时是最近的一个变化。 在此之前,这个新的行被添加,crontab中的另一行被注释掉。 而且我发誓,那时它仍然在运行注释掉的线路,而不是在晚上7点运行这条线路。 我们的pipe理员添加了5am的时间表,现在看起来好像它正在运行crontab的“先前”版本。 关于这里发生了什么的任何想法? 有没有什么办法可以让cron运行一个caching版本或以前的版本,即使crontab -l显示不同的东西?

查看哪个目录占用空间而不考虑其他挂载点

我经常发现自己不得不清理一些目录,因为它们太满了。 让我们以/var为例,因为这是常见的,原因很明显。 为了看哪个子目录需要很多空间,我使用du -sh /var/* 。 不幸的是,我在/var的子目录中有大量的数据,这些数据恰好在/var (例如/var/chroot )之外的其他分区上运行,大大减缓了进程的速度。 现在du有一个-x标志,排除其他挂载点。 当du -shx /var而不是du -shx /var/*时它工作正常,因为*由shell扩展,所以/var/chroot被明确地发送到du 。 我提出的另一个select是使用find /var -xdev -mindepth 1 -maxdepth 1 -exec du -sh {} \+但是,即使find没有跟随其他挂载点,它仍然会打印它们并将它们传递给du ,因此再没有达到我的目标。 在我编写一个可怕的bash函数(或perl / python程序)来parsingdf或mount到一个循环之前,有没有人知道一个干净的方法来实现我想要做的?