我希望能够使用shell脚本从Postfix MTA读取收到的邮件。 shell脚本应能够检索邮件标题,主题,正文,附件等,然后将邮件标记为已读。 消息以Maildir /格式存储。 在Postfix中读取邮件时,邮件将从Maildir /新文件夹移动到Maildir / cur文件夹,这有助于在需要重新处理邮件时保留作为备份。 我已经广泛search了这个,但没有发现任何有用的东西,大量的如何发送邮件的例子,但没有任何有用的阅读邮件通过脚本。 mail / mailx命令似乎只允许交互式访问,似乎没有一个通过shell脚本使用它的选项。 这只需要为一个用户工作,因为我使用catchallconfiguration将所有传入的邮件捕获到一个单一的邮箱中,以供脚本进行后续处理。 总是有select使用cronjob或incron轮询Maildir / new文件夹的传入消息,但是我会很高兴使用Postfix的邮件pipe理function,而不是手动pipe理msg文件。 我的脚本将在Postfix服务器本地。 任何build议/想法? 谢谢。 编辑:也许我应该提到,我不是在寻找与脚本的帮助。 我正在寻找一些命令行工具,可以访问Postfix Maildir /味精商店和阅读/做东西的信息,并可以调用非互动的方式。 换句话说,邮件工具的基本function,但非互动。
linux 对话框命令是在terminal窗口中创build对话框的好工具(例如在bash脚本中)。 然而, 对话的缺点是窗口总是位于屏幕的中心。 特别是我想使用尾盒function,例如 dialog –tailboxbg MYFILE 20 20 …在文本对话框中显示文件的尾部(就像内置的tail命令一样)。 但是,我想将结果窗口放在屏幕上的不同位置。 例如刚刚在上半部分或下半部分。 对话框不提供这样的function。 有什么办法可以移动对话框提供的窗口,或者有人推荐一个替代工具,这是有能力吗?
这个脚本工作正常,但我发现用户并不总是遵守正确的命名约定,才能有效。 我一直在试图修改它,但我微薄的脚本技能并不能让我find解决办法。 $directory = 'c:\temp' Get-ChildItem $directory Dir $directory | Rename-Item –NewName { $_.name –replace "-"," " } Dir $directory | Rename-Item –NewName { $_.name –replace "_"," " } dir $directory | % {rename-item -path $_.fullname -newname ( ($_.name.split(' ')[0..2] -join '-' ) + $_.Extension )} 用户将文件归档到文件夹中。 这些文件应该在文件名的开头用一个作业号命名,所以它们看起来像这样:99-99-9999(总是10个字符)他们可以select将描述放在该作业号之后,以便文件可以看起来像喜欢: 99-99-9999 – some descrition.txt 说明会有所不同,可能包含强制开始之后的任何字符。 我想使用前10个字符重命名文件。 我也希望能够确保脚本不会运行,如果前10个字符不是这种格式。 […]
我看到有人发布了这个小脚本分配Gid的,但不幸的是,我得到一个错误。 我修改了一下,以更好地适应我的需求,但不知道什么$组variables的意思呢? (见下文) 每当我尝试运行它时,都会收到错误消息 ###Find the highest GID used on any group in the domain $highGid = Get-ADGroup -Searchbase $searchbase -LDAPFilter "(gidNumber=*)" -Properties gidNumber | Measure-Object -Property gidNumber -Maximum | Select-Object -ExpandProperty Maximum ###Avoid assigning GIDs below 1000000 $highGid = [Math]::max( $highGid, 1000000 ) ####Find every security group without a gidNumber, and give it one. […]
最近,我一直在使用PowerShell中的自定义对象。 我得到了它的窍门,除了我不明白为什么PowerShell以一个看似随机的顺序显示我的对象。 例如 $i = 0; $a = @() $Disks = Get-WMIObject -Class Win32_LogicalDisk ForEach($Disk in $Disks){ $props = @{'Disk' = $Disks.DeviceID[$i]; 'Size GB' = "{0:F1}" -f ($Disks.size[$i] / 1GB)} $a += New-Object psobject -Property $props $i++ } $a 输出显示为'尺寸GB',然后'磁盘'。 我想'磁盘',然后'尺寸GB'。 例2: $Computers = 'Server1', 'Server2', 'Server3' $ComputerInfo = 1..$Computers.Length $props = @{NAME = ""; […]
在我的情况下,我有一个shell脚本在后台运行rsync和焦油。 rsync是用来传输文件的,tar是在rsync完成后进行压缩的。 我的问题是如何监视rsync的PID,并告诉当rsync的PID不再存在时启动tar命令。 shell脚本可能如下所示: rsync data.log B/ & tar data.tar.gz B/data.log &
我犯了一个愚蠢的错误…我正忙着玩busybox,并用chsh将root shell从/ bin / sh切换到/ bin / busybox,这似乎破坏了SSH的访问。 当我做: root@dev:~$ ssh [email protected] 我得到: [email protected]'s password: BusyBox v1.22.1 (2015-06-19 07:36:41 CEST) multi-call binary. BusyBox is copyrighted by many authors between 1998-2012. Licensed under GPLv2. See source distribution for detailed copyright notices. Usage: busybox [function [arguments]…] or: busybox –list or: function [arguments]… BusyBox is a multi-call binary […]
我写了一个脚本,它工作正常。 它做一些尾巴和grep操作。 当我closuresterminal并对脚本的PID进行写入时,我发现脚本仍然出现在“ps -eaf | grep -i myScript.sh”的输出中。 但是,我不希望这种行为。 我需要知道,我该如何处理这种情况。 我不想通过我的脚本给CPU造成负担。 请告诉我。 我search谷歌,我最主要的发现“如何保持脚本运行在后台”。 但是我无法得到任何关于停止它的精神。 提前致谢。 user 9405 18803 0 07:32 pts/72 00:00:00 grep 29735 user 29735 11903 0 07:24 pts/30 00:00:00 sh myScript.sh user 29818 29735 0 07:24 pts/30 00:00:00 tail -f –pid=29735 /var/log/message user 29830 29735 0 07:24 pts/30 00:00:00 -csh
我试图运行一个命令,执行一个动作,更新证书,然后重新加载Apache。 要做到这一点,我运行以下: sudo /home/ec2-user/letsencrypt/letsencrypt-auto –config /home/ec2-user/letsencrypt/cert.ini certonly –debug && service httpd reload 这给了我以下内容: Updating letsencrypt and virtual environment dependencies…… Requesting root privileges to run with virtualenv: /root/.local/share/letsencrypt/bin/letsencrypt –config /home/ec2-user/letsencrypt/secure_textinconfidence_com.ini certonly –debug Version: 1.1-20080819 Version: 1.1-20080819 IMPORTANT NOTES: – Congratulations! Your certificate and chain have been saved at /etc/letsencrypt/live/secure.textinconfidence.com/fullchain.pem. Your cert will expire on 2016-05-03. To […]
我有一个关于如何PS缩写各种命令的问题,尤其是当初始化一个PS会话。 我们假设我们从Windows DOS提示符开始: C:\> powershell -exec bypass 我似乎注意到,你也可以键入以下内容,并且它看起来好像还在运行: C:\> powershell -execution bypass C:\> powershell -exec by C:\> powershell -exec b PowerShell是否会在用户试图运行的命令中“猜测”,如果input的内容是唯一的,足以匹配已知的有效命令/选项/标志/参数? 如果有任何文献可以解释这里发生的事情,那将会非常有帮助。 谢谢!