Articles of bash

Linux:如何检查最后一次添加到文件的行数?

在例如最近10秒内,我怎样才能使用Linux / Bash检查选中的日志文件中添加了多less行? 这是一次使用,而不是在后台运行。 文件不包含任何关于时间的信息。 我也不需要这个任意的 – >我可以从我想跟踪添加的行数中select一个时刻,并且执行一段时间。 谢谢!

在用户login/注销时执行命令

当我通过sshlogin到我的linux用户时,用户应该自动执行一组命令。 同样的事情,当我注销我的用户。 我怎样才能做到这一点?

为什么这些dmsetup命令在那里?

在这个页面上有LUKSencryption的例子。 下面的例子。 为什么在那里的dmsetup命令? 他们在做什么? dd if=/dev/zero of=./volumes/vol_default.vol bs=1M count=1 losetup /dev/loop0 ./volumes/vol_default.vol echo password1234567890ABC | cryptsetup-luks luksFormat /dev/loop0 cryptsetup-luks luksDump /dev/loop0 echo password1234567890ABC | cryptsetup-luks luksOpen /dev/loop0 myMapper dmsetup ls dmsetup table dmsetup status cryptsetup-luks status myMapper losetup /dev/loop1 /dev/mapper/myMapper mkdosfs /dev/loop1 mkdir ./test_mountpoint mount /dev/loop1 ./test_mountpoint cp ./test_files/SHORT_TEXT.txt ./test_mountpoint cp ./test_files/BINARY_ZEROS.dat ./test_mountpoint cp ./test_files/BINARY_ABC_RPTD.dat […]

显示菜单,而不是Linux上的login提示

在启动一个linux服务器(主要是基于Ubuntu或Debian的)之后,我在本地控制台上看到一个login提示符。 为了让最终用户重新启动这样的服务器或启动一些维护任务,我想显示一个菜单,而不是login提示。 我怎样才能做到这一点?

在shell脚本中跳过空格

yesterday="2010-06-23 00:00:00" today="2010-06-24 00:00:00" mywhere="lastupdate>'$yesterday' and lastupdate<'$today'" mysqldump $param ticket –no-create-info –where=\"$mywhere\" 上面的shell脚本的最后一行会返回像这样的… + mysqldump -uroot -d –compact ahmadpur ticket –no-create-info –where="lastupdate>'2010-06-23 00:00:00' and lastupdate<'2010-06-24 00:00:00'" mysqldump: Couldn't find table: "00:00:00'" mysqldump命令执行中有一个错误。 但是,如果我复制粘贴相同的行,它运行成功。 我是否需要转义shell脚本输出中的空格? 如果是的话,怎么样?

在使用rsync命令连接到同一networking的两台计算机之间同步文件

可能重复: 需要帮助w / rsync 我有两台计算机连接到同一个networking,说计算机A和计算机B.计算机A有一些备份文件在目录中需要同步到计算机B(一个确切的镜像必须创build)。 这里的条件是我必须使用rsync命令来做到这一点。 我怎样才能做到这一点? 我应该使用计算机的主机名来做到这一点。 请尽早帮助我。 提前致谢

apt-get升级将在命令行上运行,但不能从cron bash脚本运行

在命令行上运行以下命令可以正常工作 $sudo apt-get update $sudo apt-get upgrade Reading package lists… Done Building dependency tree Reading state information… Done The following packages will be upgraded: linux-libc-dev 1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. Need to get 0B/864kB of archives. After this operation, 0B of additional disk space will be used. Do […]

Bash:当用sudo运行的脚本调用php命令时找不到

我有这个奇怪的问题。 php命令没有在一个特定的坐标中find。 我尝试以三种不同的方式调用命令。 其中只有一个失败: 作为用户john我创build了一个简单的脚本调用php –version 。 然后以root用户的身份调用这个脚本: sudo -u john ./script.sh 这样php命令没有find。 作为root我像这样直接调用命令: sudo -u john php –version 这里没问题,命令确实存在。 我直接以用户'john': ./script.sh调用脚本 它也能正常工作。 这是什么原因造成的? 其他用户也会遇到这个问题,不仅仅是john ,它只发生在这个特定的机器上。 操作系统是CentOS 5.9。 编辑:另外,像gcc , perl或python其他命令不会出现这个问题。 php命令是我迄今发现的唯一一个问题。

通过SSH运行远程SQL查询

我试图通过ssh在远程服务器上执行MySQL查询。 这里是我有的命令: ssh -p 2020 [email protected] 'mysql –compress –secure-auth –database operations –execute \'INSERT INTO `ops`.`accounts` (`alias`, `id`, `web_server`, `mysql_server`) VALUES (\'thisisatest\', \'act_67vhVnS30bV\', \'web2\', \'mysql1\');\'' 这应该是正确的,但我得到: bash: syntax error near unexpected token `(' 有任何想法吗?

如何在安全FTPlogin期间不运行/etc/profile.d/custom.sh

当我尝试将FTP(使用WinSCP)保护到我的CentOS 6.4框时,系统会提示一条消息,指出: Received too large (168438314 B) SFTP packet. Max supported packet size is 1024000 B. This error is typically caused by message printed from startup script (like profile). The message may start with ""\n\n**"" Cannot initialize SFTP protocol. Is the host running an SFTP server 这似乎是由我的/etc/profile.d/custom.sh脚本在login过程中运行引起的。 其设置输出一个欢迎消息,以及一个系统摘要(CPU /内存/磁盘使用情况)。 我真的需要在login到本地控制台或通过SSHlogin时运行custom.sh脚本。 但是,我不希望它login到安全FTP(SFTP)时运行。 有什么方法可以configuration它通过安全FTPlogin时不运行? 或者,如果我不能阻止它从运行有一种方法,我可以检测到它在一个安全的FTPlogin运行,不输出任何东西。 所以在伪代码类似于: 如果通过安全FTPlogin,则不输出任何内容,如果通过SSH或Local […]