Articles of linux

包含时间戳的文件名的首选格式

正如我们都知道“unix”除了“/”和“\ 0”之外可以有任何文件,系统pipe理员往往会有一个更小的偏好,主要是由于没有任何喜欢空间作为input…和一堆事情对“:”和“@”等特殊含义。 最近我又看到了另外一个例子,在一个文件名中使用了一个时间戳,在用不同的格式播放了一些后使它“更好”,我想我会试图find一个“最佳实践”,而不是看到一个我只是问在这里,看看人们的想法。 可能的“常见”解决scheme(p =前缀和s =后缀): syslog / logrotate / DNS格式如下: p-%Y%m%d-suffix = prefix-20110719-s p-%Y%m%d%H%M-suffix = prefix-201107191732-s p-%Y%m%d%H%M%S-suffix = prefix-20110719173216-s 优点: 这是“共同的”,所以“够好”可能比“最好”更好。 没有怪异的字符。 容易区分“date/时间一滴”与其他一切。 缺点: 只有date的版本是不容易阅读,包括时间,使我的眼睛stream血,秒也是“大声笑”。 假设TZ。 ISO-8601格式 p-%Y-%m-%ds = p-2011-07-19-s p-%Y-%m-%dT%H:%M%zs = p-2011-07-19T17:32-0400-s p-%Y-%m-%dT%H:%M:%S%zs = p-2011-07-19T17:32:16-0400-s p-%Y-%m-%dT%H:%M:%S%zs = p-2011-07-19T23:32:16+0200-s 优点: 没有空间。 考虑TZ。 人类阅读是否“不错”(只有date是好的)。 可以由$(date –iso = {hours,minutes,seconds})生成 缺点: SCP /焦油/等。 不会喜欢那些':'字符。 需要一些“正常”的人看到“T”的WTF,最后是什么:)。 很多' – […]

如何识别从Linux机器连接到同一台交换机的网卡?

初始设置 作为一名Linuxpipe理员,您已经安装了一个全新的Linux机箱,配有6个网卡eth0至eth5。 eth0接口configuration正确,所有其他接口当前正常,但没有IP地址。 networking人员只需将四根电缆连接到这个盒子上。 两个LAN电缆用于将盒子连接到生产networking,另外两个用于将盒子连接到专用networking。 你只知道eth0连接到生产networking。 但是您不知道哪个其他NIC连接到相同的交换机,因为有不同的服务器世代和/或networking人员使用错误的NIC进行连接。 任务在手 由于此设置对于您的基础设施而言是典型的,因此您希望自动configuration接口接口。 现在您可以检测哪些NIC根本没有连接,哪些NIC连接到相同的交换机,以便它们可以绑定。 您只能访问Linux机器,无法查询交换机。 思路 检测链接状态很简单: ethtool $device | grep 'Link detected' | cut -d ':' -f 2 但如何匹配连接到同一交换机的设备? 在HP-UX中有一个称为linkloop的工具[1]。 官方的Linux工具丢失了(虽然有一个旧的SourceForce项目)。 我已经想到的可能的解决scheme是: 用tcpdump监听所有的接口。 制作并发送一个ICMP(广播)数据包。 看到该数据包的接口需要连接到同一个交换机。 – >需要一些简单的工具的build议,可以用于此。 我想使用纯shell命令或Python的脚本。 尝试通过一些简单的协议(HTTP?)与外部盒子通话,看看是否有回应。 – >容易出错,并依赖于外部框。 你有进一步的想法或build议如何解决这个任务? 提前感谢您的所有意见! [1] http://linux.die.net/man/1/linkloop

根据Apache日志数据自动修改iptables以阻止performance不佳的客户端

Linux上是否有任何工具可以自动修改iptables,从而根据对Apache日志的分析来阻止麻烦的客户端? 我帮助运行一个网站,有时会被特定用户的请求淹没。 唯一的解决方法是在iptables中添加一个条目来阻止违规的客户端。 通常我手动反应的时间太晚了 – 因此,我想要一些基于规则的机制来修改iptables。 我猜想,某种模糊的逻辑或统计分析是必要的。

由lsof发现,但不是由netstat发现的套接字

我有一个应用程序正在耗尽文件描述符,显然是通过打开套接字,但我无法确切地知道这些套接字是做什么的。 这些出现在lsof输出中 java 9689 appuser 1010u sock 0,5 263746675 can't identify protocol java 9689 appuser 1011u sock 0,5 263746676 can't identify protocol java 9689 appuser 1012u sock 0,5 263746677 can't identify protocol java 9689 appuser 1014u sock 0,5 263746678 can't identify protocol java 9689 appuser 1015u sock 0,5 263746679 can't identify protocol java 9689 appuser […]

如何在Linux文件服务器上强制新文件/文件夹的特定权限?

我在安装Ubuntu 9.10(文件服务器)及其samba权限时遇到问题。 login和阅读工作正常。 但是,用户创build新目录会限制其他用户的访问权限。 例如,如果Bob(映射驱动器的Windows用户)在目录中创build一个文件夹,Jane(简单安装的Mac用户)就可以读取它,但不能写入它,反之亦然。 然后,我必须去CHMOD 777目录,让每个人都快乐。 我已经尝试编辑smb.conf文件中的“创build/目录掩码”和“强制”选项,但这似乎没有帮助。 我即将诉诸CRONTABing一个recursion的chmod例程,虽然我确信这不是修复。 我如何获得所有新项目始终是777? 有没有人有任何build议来解决这种不断发生的情况? 最好

用于基本HTTP(s)networking服务器的安全,标准iptables规则集

我一直在试图把一个基本的服务器iptables脚本放在一起,这个脚本可以在大多数使用HTTP(S)和SSH(端口80,443和22)的网站上运行。 毕竟,大多数VPS只需要这些起始端口规则,并可以根据需要添加邮件或游戏端口。 到目前为止,我有以下规则集,我想知道是否有人知道更好的脚本或可以添加的任何改进。 *filter # Allows all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0 -A INPUT -i lo -j ACCEPT -A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT # Accepts all established inbound connections -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT # Allows all outbound traffic # […]

在linux / arm下testingRAM(无ECC)的最佳方式是什么?

我想testing定制电路板上的无ECC存储芯片的完整性和全局性能 是否有一些工具在Linux下运行,所以我可以同时监视系统和全局温度? 一般来说,是否有一些没有ECC的特定testing? 编辑1: 我已经知道如何监测温度(我使用了一个特殊的平台function/sys/devices/platform/……../temp1_input)。 目前 : wazoox:它的作品,但我要编码我自己的testing Jason Huntley: ramspeed:不能在arm上工作 stream基准:它的工作原理和速度非常快,所以我会看看它是否准确和完整 memtest:我会稍后再试,因为它不能直接从linux运行 Fedora的压力:我会再试一次,现在安装fedora是太麻烦了 我发现这个分布: http : //www.stresslinux.org/sl/ 我会继续检查直接在Linux下运行的工具,而不会有太大的依赖关系,在尝试一下诸如stresslinux,memtest,Fedora压力之类的解决scheme之后。 谢谢你的回答,我会继续调查

$ BASH_ENV通常在哪里设置?

我有两台应该configuration相同的Linux服务器,但是对其中一台服务器的ssh命令无法执行需要在〜/ .bashrc中指定的path的命令。 例如,我可以通过交互方式和通过ssh使用像pwd这样的命令,但是如果我尝试运行位于应用程序bin文件夹中的程序,它只能在其中一台服务器的交互式shell中运行。 两个服务器上的/ etc / profile和/ etc / environment文件是相同的,但是$ BASH_ENV在正常工作的服务器上设置为〜/ .bashrc。 我想在不工作的服务器上设置$ BASH_ENV,但是我希望将它设置在工作服务器中设置的相同位置。 Linux在非交互式login时将运行的地方是什么,例如来自另一台计算机的ssh命令? 编辑:用户在/ etc / passwd中的行在两台服务器上指定/ bin / bash。 两个服务器的〜/ .bash_profile文件是相同的,并且包含if [ -f ~/.bashrc ]; then . ~/.bashrc; fi if [ -f ~/.bashrc ]; then . ~/.bashrc; fi if [ -f ~/.bashrc ]; then . ~/.bashrc; fi 。 系统之间的唯一区别是$ BASH_ENV是服务器上的一个空string不工作,我找不到它在工作的服务器上设置的位置。 编辑2:两台服务器上的〜/ .ssh […]

Nginx的 – 重写或返回redirect?

我有两个select(返回和重写)redirect,我不知道哪些是性能,search引擎优化等build议: ## Redirect from non-www to www server { server_name example.com; # Option 1 return 301 $scheme://$host$request_uri; # Option 2 rewrite ^ http://$host$request_uri? permanent; } ## Default server config server { … listen 192.168.1.1:80 default_server; root /www; server_name www.example.com; 选项2似乎与curl一起工作,但在浏览器调用时不会redirect,并且返回码是临时redirect的,即使rewrite指令被设置为permanent : curl -I example.com HTTP/1.1 302 Moved Temporarily Server: nginx … Location: http://www.example.com/ …

Ubuntu的服务器 – 我需要做什么来保持它uptodate

我正在build立一个Ubuntu服务器,并想知道我应该怎样做定期。 apt-get update/upgrade似乎很明显。 例如,是否有glsa检查? 还有什么我应该跑? 我想这取决于什么是安装,但我现在正在考虑核心系统。