我有一个服务守护进程创build了很多临时文件。 最近我的服务器死了,因为恶意用户pipe理洪泛/ tmp并填满了磁盘。 我采取了一些措施积极清理临时目录,另外我想限制这个应用程序临时目录的最大大小。 有没有什么办法可以创build目录,比如说/apptmp永远不会比10G更大? 我知道我可以设置磁盘限制的用户,但我只是想限制这个tmpdir; 应用程序应该始终能够在其他地方写入。 我正在运行Ubuntu Linux 12.04。 编辑:所有这些应该最终被包装在一个可安装的Ubuntu包,但是。 所以我不认为我想依靠修改分区,除非我能以某种方式模拟它。
当我打电话 cd / grep -r "some_str" . 然后我看到大量的文件打印在屏幕上,并在行结束我看到“:权限被拒绝”。 我如何告诉bash只能在我有权限的文件中search。 这将明显快于标准的grep。
我在一台服务器上托pipe多个域。 我希望能够在我的bash提示符中更改显示的主机名,以指示在ssh进入服务器时select哪一个。 我的提示如下: \u@\h 这显示为: user@hostname 我将如何更改\h显示我login哪个域(blah.net,hmm.com等)?
我刚刚使用centos / 7盒子创build了一个全新的CentOS 7虚拟机(bash版本4.2.46),当我以stream浪用户的身份login时,这是我的path: /usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/vagrant/.local/bin:/home/vagrant/bin 以root身份login时,这是PATH: /usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin 我知道/etc/profile正在添加/usr/local/sbin:/usr/sbin (大多数用户的末尾,root的开始处)以及/etc/skel/.bash_profile结尾在stream浪汉主目录join/home/vagrant/.local/bin:/home/vagrant/bin ,但是初始设置来自哪里? 目前我没有解释为什么用户在他们的PATH中使用/usr/local/bin:/usr/bin ,而root使用其他的。 (坦率地说,根path/etc/profile ,根path的sorting看起来很奇怪,因为/usr/local/sbin和/usr/sbin应该在最后。
我有一个简单的脚本,给我一些文件的值。 我正在使用sed来获取该值(语法在下面给出)。 这些命令一直工作到昨天。 但现在我没有得到任何价值,当我运行这些命令。 我没有改变任何东西,所以我很惊讶,是什么原因。 任何人都可以请告诉我如何debugging我的问题? 下面是文件的文字: May 1 11:59:31 box2 kernel: usb 1-3: new high speed USB device using ehci_hcd and address 24 May 1 11:59:31 box2 kernel: usb 1-3: New USB device found, idVendor=0411, idProduct=0105 May 1 11:59:31 box2 kernel: usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=5 May 1 11:59:31 box2 […]
我不小心删除了/ var / log / syslog,认为系统会自动重新创build它(不)。 我使用了touch /var/log/syslog并重新启动了rsyslog,但系统仍然没有logging任何东西。 我也重新启动整个服务器无济于事。 ls -l /var/log/syslog的输出是 -rwxrwxr-x 1 root root 0 Oct 27 13:16 syslog 我怎样才能让系统重新开始loginsyslog? 给未来读者的笔记 重新启动rsyslog确实解决了这个问题。 第一次为我工作的原因是我使用touch /var/log/syslog创build了“syslog”文件。 解决scheme是删除/var/log/syslog 。 然后运行sudo service rsyslog restart TLDR; 不要创build自己的文件。 删除系统日志,然后重新启动rsyslog(这将为您创build系统日志)。 问题解决了。
我在用 ps -ef | grep java | wc -l 找出在任何给定时间运行的java进程的数量。 上面的命令显然也会在结果中统计“ps -ef | grep java”命令。 为了避免这个,我发现我可以使用 ps -ef | grep [j]ava | wc -l 它工作正常。 不过,我想弄清楚为什么能从结果中跳过原来的命令。
我应该介绍一下使用shell(即bash)给初学者的介绍。 哪一个是最基本/有用的东西,我可以在一个半小时内教给别人没有太多的要求? 以下是我想到的一点: 我在哪里(pwd) 更改目录(cd,cd ..,cd – ) 创build目录(mkdir,mkdir -p) 重命名文件/目录(mv) 复制文件/目录(cp,cp -r) 列出目录条目(ls,ls -l,ls -a) 编辑 总的来说,初学者是指一般的Unix / Linux初学者:-)。
我有4个云实例。 首先是一个负载均衡器(LB),然后使用相同的设置保存应用程序代码(APP1&APP2)的两个实例。 最后,我有一个数据库实例(DB)。 DB:MySQL Web服务:Nginx LB将只将所有请求路由到APP1。 如果APP1closures,则LB将把请求路由到APP2。 我想写一个shell脚本,只有当LB没有路由请求时才会执行它。 所以,我将在APP1和APP2上都有一个名为run.sh的脚本。 当且仅当LB将请求路由到APP1时,APP2上的run.sh将通过cron执行。 任何想法如何我可以弄清楚,从APP2,如果LB是路由请求到它?
有一个Chandler安装工作好几个月,但最近当我去连接到服务器,我注意到它没有运行。 SSHing,确认它没有运行,所以我去通过我的钱德勒启动脚本( /etc/init.d/chandler )手动重新启动,通过各种重新启动等几个月和几个月完美工作,我得到以下错误: /chandler/bin/osafsrvctl: 24: Syntax error: "(" unexpected 现在,如果我直接进入/chandler/bin/osafsrvctl以root /chandler/bin/osafsrvctl start运行以下/chandler/bin/osafsrvctl start ,则启动时不会出现错误。 一些在线search让我相信这是Chandler需要/ bin / bash才能正常启动,因为启动脚本是Bash。 精细。 检查/chandler/bin/osafsrvctl文件,确实使用/bin/bash 。 更改init.d启动脚本也使用/ bin / bash什么也没做,得到相同的错误。 这是生成错误的/etc/init.d/chandler脚本: #!/bin/sh -e ### BEGIN INIT INFO # Provides: chandler # Required-Start: $local_fs $remote_fs $network $syslog # Required-Stop: $local_fs $remote_fs $network $syslog # Default-Start: 2 3 4 5 # […]