在新的 Ubuntu 10.4 实例上,我尝试使用该locate命令仅接收错误
locate: can not stat () `/var/lib/mlocate/mlocate.db': No such file or directory
Run Code Online (Sandbox Code Playgroud)
在其他系统上使用此命令时,我猜测这意味着尚未构建数据库(这是全新安装)。我相信它应该每天运行,但我如何将它排队立即运行?
另外,“每天运行”是如何确定的?如果我有一个每次只打开一个小时的盒子,数据库是否会自行构建?
我刚刚启动了一个 Ubuntu 11.10 盒子,然后跑去apt-get install apache2 php5在盒子上安装 apache2 和 PHP 5。现在它作为一个“网络服务器”运行并加载“It Works!” 页。现在我正在努力加强安全性,我对 linux web 服务器有以下问题:
www-data?对于以用户身份运行的 apache/php?我在检查默认设置时做了以下事情:
当我cd /和做ls -al的内容列表,我看到/var:
drwxr-xr-x 13 root root 4096 2012-02-04 20:47 var/
Run Code Online (Sandbox Code Playgroud)
如果我cd进入var并且确实ls -al看到:
drwxr-xr-x 2 root root 4096 2012-02-04 20:47 www/
Run Code Online (Sandbox Code Playgroud)
最后,在里面/var/www我看到:
drwxr-xr-x 2 root root 4096 2012-02-04 20:47 ./
drwxr-xr-x 13 root root …Run Code Online (Sandbox Code Playgroud) 在vim我使用yy和p所有的时间猛拉和粘贴线条。但是,如果我想在文件中的多个位置替换一行,则无法使用,yy p dd p因为dd 删除了到剪贴板/寄存器的行。虽然我应该知道如何更好地使用寄存器,但我觉得可能有一种方法可以p替换当前行。
我想知道是否有一种方法可以cat归档php.ini并删除所有以开头的行;
例如,如果文件包含以下内容:
; - Show all errors, except for notices
;
;error_reporting = E_ALL & ~E_NOTICE
;
; - Show only errors
;
;error_reporting = E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR
;
; - Show all errors except for notices
;
error_reporting = E_ALL & ~E_NOTICE
Run Code Online (Sandbox Code Playgroud)
我运行了正确的命令cat | {remove comments command},然后我会得到:
error_reporting = E_ALL & ~E_NOTICE
Run Code Online (Sandbox Code Playgroud)
注-我认为cat会做到这一点的最好办法,但实际上,我细使用其他实用程序一样的答案awk,sed,egrep,等。
我知道一定范围的 IP 地址导致我的服务器出现问题,172.64.*.*阻止访问我的 Amazon EC2 实例的最佳方法是什么?有没有办法使用安全组来做到这一点,或者最好使用服务器本身的防火墙来做到这一点?
我正在设置几个ubuntu盒子,并使用 opscodechef作为配置工具。在这些服务器中的每一个上为每个用户安装公钥并禁用密码身份验证是相当容易的。
但是,用户也应该具有sudo特权,默认情况下需要密码。
如果我想使用用户的公钥作为访问管理的一种方法并允许用户sudo权限,这是否意味着我还应该使用NOPASSWD: ALLin设置用户visduo,或者有没有办法让用户可以更改自己的密码,如果他们只有公钥认证?
我有一个包含崩溃日志的目录,我想在基于 find 命令的 bash 脚本中使用条件语句。
日志文件以这种格式存储:
/var/log/crashes/app-2012-08-28.log
/var/log/crashes/otherapp-2012-08-28.log
Run Code Online (Sandbox Code Playgroud)
我希望 if 语句仅在特定应用程序的崩溃日志在过去 5 分钟内被修改时才返回 true。find我会使用的命令是:
find /var/log/crashes -name app-\*\.log -mmin -5
Run Code Online (Sandbox Code Playgroud)
我不确定如何将其if正确地合并到声明中。我认为这可能有效:
if [ test `find /var/log/crashes -name app-\*\.log -mmin -5` ] then
service myapp restart
fi
Run Code Online (Sandbox Code Playgroud)
有几个地方我不清楚:
test指令,还是应该直接针对 find 命令的结果进行处理,或者可能用于find... | wc -l获取行数?test为了测试命令返回的返回码?而且它们有点不可见 - 在stdout/之外stderr?我阅读了该man页面,但我仍然不清楚何时使用test以及如何调试它。根据Unix和Linux管理手册和man,logrotate的有选项daily,weekly以及monthly,但有一种方法来添加一个hourly选项?
本博客文章中提到,您可以设置size 1和删除的时间选项(如:daily),然后手动调用logrotate与cron-我想是这样
logrotate -f /etc/logrotate.d/my-hourly-file
Run Code Online (Sandbox Code Playgroud)
但是有没有更优雅的每小时轮换日志的解决方案?
我正在运行 Ubuntu 10.04。有什么方法可以让我每天报告谁登录了盒子,什么时间,甚至 - 这可能要求太多 - 他们使用的命令的报告?这是一个使用率较低的盒子,所以我认为这是查看其上正在发生的活动的好方法。
按照同样的思路,我听说无法通过非交互式 shell(例如 rsync)或仅通过 ssh 远程执行单个命令来跟踪在盒子上完成的事情。这是真的,还是有办法记录和跟踪这一点?