标签: unix

Bash:> 和 >> 运算符之间的区别?

我对 bash 了解不多。

我的导师让我制作一个 cat 脚本并观察输出,然后告诉我什么是运算符 > 以及运算符 > & >> 之间的区别是什么。

我找不到任何理由。你能帮忙吗?

unix bash

54
推荐指数
1
解决办法
15万
查看次数

为什么我必须用 visudo 编辑 /etc/sudoers?

我注意到 sudoers 文件和 cron 配置文件与 Linux 上的其他配置文件相比以一种特殊的方式运行。它们需要使用特殊的包装器而不是任何文本编辑器进行编辑。为什么是这样?

security linux unix configuration sudo

53
推荐指数
2
解决办法
8793
查看次数

更好地记录 cronjobs?将 cron 输出发送到系统日志?

我正在寻找一种更好的方式来记录 cronjobs。大多数 cronjobs 倾向于向垃圾邮件或控制台发送垃圾邮件,被忽略或创建另一个日志文件。

在这种情况下,我有一个 Nagios NSCA 脚本,它将数据发送到中央 Nagios 服务器。这个 send_nsca 脚本还会向 STDOUT 打印一个状态行,指示成功或失败。

0 * * * * root    /usr/local/nagios/sbin/nsca_check_disk
Run Code Online (Sandbox Code Playgroud)

这会将以下消息通过电子邮件发送到 root@localhost,然后转发给我的系统管理员团队。垃圾邮件。

转发 nsca_check_disk:1 个数据包成功发送到主机。

我正在寻找一种日志记录方法:

  1. 不会向电子邮件或控制台发送垃圾邮件
  2. 不要再创建另一个需要在数月或数年后进行清理的 krufty 日志文件。
  3. 在某处捕获日志信息,以便以后需要时可以查看。
  4. 适用于大多数unix
  5. 适合现有的日志基础架构。
  6. 使用常见的系统日志约定,如“设施”和“优先级”
  7. 可以使用不总是在内部进行日志记录的第三方脚本。

linux unix logging syslog cron

53
推荐指数
2
解决办法
5万
查看次数

具有并行处理功能的更好的 Unix 查找?

unixfind(1)实用程序非常有用,它允许我对符合特定规范的许多文件执行操作,例如

find /dump -type f -name '*.xml' -exec java -jar ProcessFile.jar {} \;
Run Code Online (Sandbox Code Playgroud)

上面的代码可能会对特定目录中的每个 XML 文件运行脚本或工具。

假设我的脚本/程序占用了大量 CPU 时间并且我有 8 个处理器。一次处理最多 8 个文件会很好。

GNU make 允许使用-j标志进行并行作业处理,但find似乎没有这样的功能。是否有替代的通用作业调度方法来解决这个问题?

unix find

52
推荐指数
4
解决办法
3万
查看次数

如何从 Ubuntu 中的(失败的)cron-jobs 获取电子邮件?

我通过将可执行文件放在/etc/cron.{daily,hourly,monthly,weekly}. 有很多以cron开头的目录:

kent@rat:~$ ls -ld /etc/cron*
drwxr-xr-x 2 root root 4096 2009-06-06 18:52 /etc/cron.d
drwxr-xr-x 2 root root 4096 2009-07-16 13:17 /etc/cron.daily
drwxr-xr-x 2 root root 4096 2009-06-06 18:52 /etc/cron.hourly
drwxr-xr-x 2 root root 4096 2009-06-06 18:52 /etc/cron.monthly
-rw-r--r-- 1 root root  724 2009-05-16 23:49 /etc/crontab
drwxr-xr-x 2 root root 4096 2009-06-06 18:52 /etc/cron.weekly
Run Code Online (Sandbox Code Playgroud)

我想在以下情况下从我的脚本中收到电子邮件:

  1. 脚本失败并给出非零退出代码。
  2. 剧本有话要告诉我

我安装了SSMTP并且可以正常工作,我从我的 Google 帐户发送邮件。SSMTP 只能使用一个帐户发送邮件这一事实对我来说不是问题。它只是一个家庭服务器,我拥有的用户无法添加 cron-jobs。

我想知道脚本的邮件通常如何在 Linux/Unix 中工作,特别是在 Ubuntu 中。我也想知道在上述两种情况下有什么好方法可以让我收到邮件。

email linux unix ubuntu cron

51
推荐指数
4
解决办法
11万
查看次数

rsync - 排除超过特定大小的文件?

我正在将我的桌面备份到远程机器。我基本上是在做rsync -a ~ example.com:backup/但是有大量的大文件,例如维基百科转储等。我关心的大多数文件都很小,例如 firefox cookie 文件,或.bashrc. 是否有一些对 rsync 的调用会排除超过特定大小的文件?这样我就可以先复制所有小于 10MB 的文件,然后再复制所有文件。这样我就可以对最重要的文件进行快速备份,然后对其他所有文件进行更长的备份。

linux unix rsync file-transfer

51
推荐指数
1
解决办法
3万
查看次数

如何制作全局 ~/.vimrc?

现在,我让每个人都做 ~/.vimrc 并将他们的设置放在那里。

如何为新用户创建全局默认.vimrc

linux unix centos vim

50
推荐指数
4
解决办法
4万
查看次数

如何打印 at 作业的内容?

我有一个 Debian 盒子,里面有一些使用at. 我知道我可以使用 列出他们的工作时间atq,但是除了偷看之外,还有什么方法可以打印出他们的内容/var/spool/cron/atjobs吗?

linux unix command-line-interface at

50
推荐指数
2
解决办法
5万
查看次数

学习从源代码编译东西(在 Unix/Linux/OSX 上)

当我尽可能从包 (MacPorts / apt-get) 安装软件时,我经常发现自己需要从源代码编译包。./configure && make && sudo make install通常就足够了,但有时它不起作用 - 当它不起作用时,我经常被卡住。这几乎总是以某种方式与其他库依赖项相关。

我想学习以下内容:

  • 我如何弄清楚要传递给什么参数./configure
  • 共享库如何在 OS X / Linux 下工作 - 它们在文件系统上的位置,如何./configure && make找到它们,当它们被链接时实际发生了什么
  • 共享库和静态链接库之间的实际区别是什么?为什么我不能只是静态链接所有内容(现在 RAM 和磁盘空间都很便宜),从而避免奇怪的库版本冲突?
  • 我如何知道我安装了哪些库以及哪些版本?
  • 如何在不破坏正常系统的情况下安装多个版本的库?
  • 如果我使用软件包管理的系统上从源代码安装东西,那么最干净的方法是什么?
  • 假设我设法从源代码中精心编译了一些东西,那么我如何将其打包,以便其他人不必跳过相同的圈套?特别是在 OS X 上......
  • 我需要掌握哪些命令行工具才能擅长这些东西?诸如 otool、pkg-config 之类的东西。

我愿意在这里投入相当多的时间和精力——我不一定想要对上述问题的直接答案,我更愿意得到关于我可以阅读的书籍/教程/常见问题解答的建议,这会给我我需要了解实际发生的事情,从而自己解决问题。

linux unix installation mac-osx

49
推荐指数
4
解决办法
2万
查看次数

Unix 套接字与 TCP/IP 主机:端口

有人可以向我描述在服务器(Ubuntu,FWIW)上设置服务时使用 Unix 套接字文件与 tcp/ip localhost:port 的优缺点吗?

在这个特定实例中,它用于 Python WSGI 服务器 (uWSGI),但我只是对一般情况感兴趣(例如,我知道您可以通过两种方式设置 MySQL)。

我意识到使用 tcp/ip 意味着服务可以暴露给其他机器,但我只是对在本地访问服务时是否有任何性能权衡感兴趣。

干杯。

linux unix tcpip socket

48
推荐指数
3
解决办法
2万
查看次数