Articles of bash

Chrooted用户不会在他的主目录中启动,也不会加载他的bash_profiles

如果用户login,他将从/ chroot开始(这是实际机器上的/ var / jail)。 我希望他从他的家里开始。 另外,他似乎不加载任何他的configuration文件(.bash.rc等)。 我按照这个教程创build了chroot环境。 这就是我的/ etc / passwd的样子: test:x:1004:1008:,,,:/var/jail/home/test:/bin/bash 这就是我的/ var / jail / etc / passwd文件的样子: test:x:1004:1008:,,,:/home/test:/bin/bash 我也发现,如果我删除 Match User test ChrootDirectory /var/jail AllowTCPForwarding no X11Forwarding no 从我的/ etc / ssh / sshd_config,用户启动他的正确的家庭文件夹,并与他的bash设置加载。 但是,如果我删除了这个部分,他就可以离开chroot环境。 我之前问过的这个问题有些相关,因为我认为命令行的错误是由未加载的configuration文件引起的。 那么有什么想法如何解决这个问题?

recursion获取所有指定文件夹的总文件大小

我在一个项目上使用svn ,我试图看看所有的.svn文件夹占用了多less文件空间。 如果我做了类似的事情 du -h | egrep ".*\.svn$" 它将列出所有.svn文件夹及其大小,但在3k +行。 我怎么总结所有这些线(或执行一个操作,会给我同样的结果)?

通过SSH使用www数据

为了开发的目的,我使用www-data (在Ubuntu 11.10服务器上)ssh和消防git命令和基本的东西对webroot。 我没有像命令历史,着色等的东西,就像我当其他用户在ssh中一样,所以我很好奇如何使这个工作。 我假设我需要一个`.bashrc'文件,但我不知道要包含什么或(更重要的是,因为我可以从另一个用户复制一个)到哪里去。

引导一个debian构build环境并构build没有root权限的源代码包

在debian squeeze ,我试图做到以下几点: 从wheezy源代码仓库获取源代码包 引导几个体系结构的squeeze chroot build立几个体系结构( i386 , amd64 , all和any ) 我希望获取,引导和构build操作都是脚本化的,可重复的,并以普通用户身份运行。 对于环境设置,我想尽可能less地使用root帐户(安装必要的依赖关系,也许一些visudo东西)。 如果可能的话,我想避免使用虚拟机(pbuilder与user mode linux ) 到目前为止,我已经尝试了几件事情与pbuilder (需要root ), debootstrap (需要root ),很less成功。

为什么一个进程监视脚本使用1号出口; 没有发现问题?

一般问题: 在Linux(Centos)服务器上,如果由cron运行的进程监视脚本设置为closures,则exit 1; 而不是exit 0; 发现一切正常,不需要采取行动,这是一个错误吗? 还是有合理的理由叫exit 1; 而不是exit 0; 在“一切正常,不需要行动”的条件下? exit 0; 发现没有问题似乎对我来说比较合适。 但也许有一些我不知道的东西。 例如,也许有一些特定于Cron的东西? 或者,也许在stream程监控脚本中有一个惯例,“失败”意味着“ 这个脚本不需要解决问题 ”(而不是我期望的那个是第exit 1;意思是“ 被监控的stream程失败了 ”)? 我的具体情况是: 我正在看我的网站托pipe公司编写的stream程监控脚本。 通过进程监控脚本,我的意思是由Cron定期执行的一个脚本,检查一个重要的系统进程是否正在运行,如果没有运行,则采取诸如邮寄pipe理员或重新启动进程等操作。 以下是其脚本的(广义)结构,对于在端口8080上运行的服务(在本例中为Apache Tomcat): SERVICE=$(/usr/sbin/lsof -i tcp:8080 | wc -l); if [ $SERVICE != 0 ]; then exit 1; else #take action fi 即使像我这样知识渊博的人看起来也很简单,除了exit 1;以外exit 1; 部分看起来很奇怪 据我所知, exit 0; closures一个程序,并向执行该程序的父母表明一切正常, exit […]

有可能提供可变参数到xinetd服务?

我创build了一个bash脚本来侦听特定的端口(使用xinetd),所以无论何时有人连接到端口,它都会调用脚本并将其输出提供给用户。 但我需要提供dynamic参数给服务器,例如当我telnet到服务器像 telnet myserver 4535 那么我应该能够通过一个像我的名字“弗兰克”的说法,它应该说 "Hello Frank" 在xinetd config中有一个server-args的参数,但我不确定它的参数是否可以通过telnetdynamic传递。

用bash或Python下载,同时保持目录树/结构

我有我需要下载的文件列表,如 www.domain.com/files/archive.zip www.domain.com/img/icon.ico www.domain.com/files/backup/archive.zip www.domain.com/backup/img/icon.ico www.domain.com/archive.zip 这意味着我有这个文件列表中的名称冲突,所以我需要保持目录结构完好,并重新下载这个时候,重新创build它,我还没有发现任何东西甚至在Python urllib类似,我不知道任何Linux工具,可以为此做好。 任何build议?

shell脚本在crontab中,并不是所有的输出都被logging下来

我有一个简单的shell脚本,运行几个LFTP命令并处理这些文件。 当从bash直接运行时,我在屏幕上获得了LFTP命令的完整输出。 从以下的crontab运行时… */5 * * * * /bin/bash /home/user/ftp-getter.sh >> /var/log/ftp-getter.log 2>&1 我只得到我正在显式地回显一些输出和date命令的输出的行的输出。 LFTP返回的文本不会进入日志。 我已经试过把2>&1移到>>之前,仍然得到相同的结果。 当直接从命令行运行该crontab命令时,我在屏幕上和日志文件中都获得了LFTP输出。 但是不能在crontab中运行。 有没有什么特别的LFTP输出会导致这种情况,并可能适用于其他命令从crontab中的shell脚本运行?

用`find -delete`奇怪的行为

我在软件RAID1中使用带有2个2TB SATA3硬盘的Ubuntu 12.04。 文件系统是ext4,其中data=writeback 。 当使用find . -maxdepth 1 -name '*' -delete find . -maxdepth 1 -name '*' -delete -delete删除目录中的大量文件,每隔一段时间做一次df显示: 最初大量的文件被删除, iotop显示了大部分IO的find操作。 稍后 df显示文件数量保持不变, iotop显示IO使用现在由jbd2和md4_raid1占主导地位。 几分钟后 , df显示文件数量再次下降。 任何人都可以解释此行为? 这是正常的还是有什么问题,我的服务器? 另外,3个进程如何同时有99.99%的IO使用率呢?

如何检查域名是否指向我?

我在linux服务器上写了一些bash,并且有一个概念,我试图让我的头。 给定一个域名,我可以告诉它是否指向当前的服务器? 请记住,服务器可能有多个IP地址。 我目前的计划是从'ip addr'命令循环所有的IP地址,看看'host example.com'是否返回其中的一个。 任何更好的想法?