小编Fre*_*ers的帖子

在 -name 和 -iname 之间使用 FIND 有什么区别

好吧,问题说明了一切,我都看过

find -name 
Run Code Online (Sandbox Code Playgroud)

find -iname 
Run Code Online (Sandbox Code Playgroud)

到处使用,没有明显的模式。

有人可以解释这些差异吗,也许可以用一个例子来澄清?

find

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

MySQLdump 通过 crontab - Pass --password=/hashed/password/file 所以我可以通过 crontab w/o 使用纯文本密码

所以我正在为自己设置一个 WordPress 备份指南/为自己制定一个真正的备份计划。

我想每天进行 MySQL 转储,但该命令需要

-p then user input 
Run Code Online (Sandbox Code Playgroud)

或者

--password="plain text password"
Run Code Online (Sandbox Code Playgroud)

我可以将它传递给至少是 MD5 或更好的散列和保护以提高安全性但使命令不需要用户输入的文件吗?

任何帮助表示赞赏!

参考这里是我要运行的命令

mysqldump -u [username] --password=~/wp_backups/sqldumps/.sqlpwd [database name] > ~/wp_backups/sqldumps/"$(date '+%F').sql"
Run Code Online (Sandbox Code Playgroud)

security password hashsum mysql

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

@hourly vs 0 * * * * - Cron - 如何每小时但在不同的时间运行作业

我有我想每小时运行的工作,但不一定同时运行,我认为

0 * * * * job 
Run Code Online (Sandbox Code Playgroud)

表示在点上每小时的 0 分钟运行。

我知道我也可以使用

@hourly job
Run Code Online (Sandbox Code Playgroud)

如果有的话有什么区别?我如何安排作业每小时运行,但不是同时运行?

cron scheduling

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

无登录 Shell 的“系统用户”的无密码 SSH

我今天学到了很多东西,使用 RSA 来处理 ssh 并创建没有密码、没有登录名等的系统用户帐户。我试图做的是创建一个用户,该用户需要一个~/.ssh/和密码(初始 ssh 设置需要)

但我似乎无法正确设置它。

我知道使用

ssh-keygen
ssh-copy-id user@remotehost
Run Code Online (Sandbox Code Playgroud)

这对 RSA 来说很简单

我知道如何用 say 创建用户

useradd -r newuser
Run Code Online (Sandbox Code Playgroud)

或者

adduser newuser --system --shell=/bin/false
passwd newuser
passwd -d newuser
Run Code Online (Sandbox Code Playgroud)
  • 最终目标

    是没有外壳的用户,或者至少无法从远程计算机登录,但仍可用于通过 ssh 连接到另一台计算机并运行命令。这甚至可能吗?

  • 原因/目标

    是让用户在 UPS 电量不足时通过 ssh 关闭其他连接的计算机,然后再关闭主计算机。(一次只有一台计算机可以通过 USB 连接到 UPS 以监控统计数据)。

我不希望人们能够使用用户名 UPS 通过 SSH 登录,但我需要 ups 才能在没有密码的情况下通过 ssh 进入远程主机。

shell security ssh

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

msmtp 空收件人和发件人字段 - 当从 CLI 或手动发送时,所有邮件都以大容量邮件结束

我已经使用以下内容设置了 MSMTP,但是如果我从 CLI 发送电子邮件,它要么被阻止,要么最终出现在我的垃圾邮件中,因为它没有发件人/发件人或顶部的任何内容。但是来自 CRON 的电子邮件格式正确。

sudo apt-get update
sudo apt-get install -y msmtp msmtp-mta 

# MSMTPRC Configuration
cat << EOL >/etc/msmtprc
# Set default values for all following accounts.
defaults
auth           on
tls            on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
logfile        /var/log/msmtp.log
aliases        /etc/aliases

# Comcast
account        Comcast
host           smtp.hmc1.comcast.net
port           587
from           USER@COMCAST
user           USER@COMCAST
password       PWD


account default : Comcast
EOL

# Set Strong Permissions due to Plain Text PWD
sudo chmod 600 /etc/msmtprc

# Configure User Alias
cat << EOL …
Run Code Online (Sandbox Code Playgroud)

smtp email mail-transport-agent msmtp

5
推荐指数
1
解决办法
875
查看次数

为什么我的一些日志使用本地主机和其他主机名 - 不同的服务器

我正在调试与 LDAP登录相关的内容,Ldap SSH 登录不起作用 - 相同的配置在 20 多个其他服务器上工作 - Ubuntu,我注意到在某些服务器中,日志使用 localhost,而在其他服务器中,它们具有主机名。拥有主机名似乎最有意义,尤其是当我们要集中日志文件时。

这是怎么配置的?为什么不默认使用主机名?只是有点让我好奇...

例子 :

Oct 29 11:23:56 daily sshd[20625]: pam_unix(sshd:session): session opened for user LDAPUSERNAME by (uid=0)
Run Code Online (Sandbox Code Playgroud)

或者

Oct 29 10:56:36 localhost sshd[2560]: pam_unix(sshd:auth): check pass; user unknown
Run Code Online (Sandbox Code Playgroud)

更新:

user@qa-ops:~$ hostname
qa-ops
user@daily:~$ hostname
daily.domain.com
Run Code Online (Sandbox Code Playgroud)

也许这与 Daily 在主机名中拥有完整域名有关?我一直认为 /etc/hostname 应该是主机名的简短部分,而不是完整的 hostname.domain.com 等。

logs hostname rsyslog

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

阻止 WAN 访问 - 允许 LAN 访问 - Linux 主机

我要做的是阻止对 WAN 的访问,只允许这些主机在 192.168.1.0/24 LAN 上相互通信。此配置应在相关主机上完成。

有一些类似的帖子,但往往过于具体的用例,或者过于复杂。我现在支付每 GB 的互联网费用。我有某些虚拟机在设置后并不真正需要 WAN 访问,但似乎正在使用大量数据。(出于某种原因 LDAP 服务器?)

我正在研究 DD-WRT 过滤,但我想知道如何做这个主机端。

我还将研究每天启用 WAN 访问 1 小时。这可以通过带有 CRON 的“ iptables 脚本” 或仅通过 DD-WRT 来完成。

我猜 IPTables 是要走的路。我认为我所有的服务器都使用 IPTables,有些使用 UFW,有些使用 FirewallD。

我认为这可能是一个“通用问题”,其主要答案应该适用于许多/所有发行版。但补充一下,我主要使用 Ubuntu 14/16 和 CentOS 6/7。

networking iptables

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

使用 Upstart 在启动时自动启动虚拟机 VBoxHeadless - init 和 Graceful exit

我想在 Ubuntu 14 Linux Headless Server 上启动时自动启动 VirtualBox 虚拟机。

我已@reboot通过 crontab尝试过,但该VboxHeadless命令似乎无法与@reboot. 我认为这是一个时间问题。

因此,我进行了更多研究,并被指导制作了一个 Upstart 脚本。我该怎么办?

virtualbox upstart sysvinit

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

找到所有 [filename].mp4 并重命名 [filename].audio

所以我有一个脚本,它使用$1.audio文件中的音频将 2 部电影添加到一起。我想做的是重命名目录中的任何文件:

*.mp4 
Run Code Online (Sandbox Code Playgroud)

到:

*.audio 
Run Code Online (Sandbox Code Playgroud)

保留原始文件名。

find rename files

2
推荐指数
1
解决办法
2642
查看次数

根据 TimeDateCTL 未启用 NTP - CentOS 7

我想知道如何让 timedatectl 显示在 CentOS 7 中启用了 NTP

root@voip:~ $ timedatectl
      Local time: Tue 2016-10-18 20:58:23 EDT
  Universal time: Wed 2016-10-19 00:58:23 UTC
        RTC time: Wed 2016-10-19 00:58:23
       Time zone: America/New_York (EDT, -0400)
     NTP enabled: no ##THIS LINE##
NTP synchronized: yes
 RTC in local TZ: no
      DST active: yes
 Last DST change: DST began at
                  Sun 2016-03-13 01:59:59 EST
                  Sun 2016-03-13 03:00:00 EDT
 Next DST change: DST ends (the clock jumps one hour backwards) at
                  Sun 2016-11-06 01:59:59 EDT
                  Sun 2016-11-06 …
Run Code Online (Sandbox Code Playgroud)

centos ntp

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

bash - 查找所有具有相同名称的文件,无论扩展名如何

我正在合并两个电影库,并希望通过 bash 脚本手动“删除重复”。

到目前为止,这是我的思考过程:

  • 无论扩展名如何,查找所有具有相同名称的文件
  • 删除较小的文件(我有几天的存储空间!更喜欢质量!)

我可以以此为基础,所以如果我能以某种方式将删除部分分开,我就可以在此基础上进行构建。虽然我可以使用 ffmpeg 来检查视频并选择更好的视频,但我猜测更大的尺寸 = 最佳选择并且更易于编码。

我发布了 Software Rec,但没有得到我想要的东西,所以我意识到 bash 是我最好的选择,但是我的“查找”知识有限,而且我找到的大多数答案都很复杂,我认为这应该是一个简单的事物。

例如:查找名称相同但内容不同的文件?

bash find

2
推荐指数
1
解决办法
5856
查看次数

为 PaceMaker + Corosync 创建 Virtual_IP 时遇到问题 - CentOS 7

好的,所以我已经成功地进行了相当多的配置,两个节点已经相互验证并且一切正常,但是当我尝试添加 virtual_ip 时,它永远不会启动。

到目前为止我所使用的并不是真正相关的,但是我的文章(wip)就在这里,我只是不想让这篇文章看起来比它需要的更大。

要创建虚拟接口,我使用了以下内容:

pcs resource create virtual_ip ocf:heartbeat:IPaddr2 ip=192.168.1.218 cidr_netmask=32 op monitor interval=30s
Run Code Online (Sandbox Code Playgroud)

我只有一个网卡,它的配置如下所示:

[root@node1 network-scripts]# cat ifcfg-eno16777984
TYPE="Ethernet"
BOOTPROTO=none
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT=no
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_FAILURE_FATAL="no"
NAME=eth0
UUID="bf0b3de8-f607-42f3-9b00-f22f59292c94"
DEVICE="eno16777984"
ONBOOT="yes"
IPADDR=192.168.1.216
PREFIX=32
GATEWAY=192.168.1.1
DNS1=192.168.1.149
Run Code Online (Sandbox Code Playgroud)

错误:(通过“pcs status”找到)

* virtual_ip_start_0 on node1 'unknown error' (1): call=12, status=complete, exitreason='Unable to find nic or netmask.',
last-rc-change='Fri Apr 29 02:03:57 2016', queued=1ms, exec=24ms
Run Code Online (Sandbox Code Playgroud)

我不认为它是 IPTables 问题,因为我目前已将其与所有其他防火墙一起禁用。我没有禁用 SELinux。我怀疑我需要另一个网络配置,但我有点迷失了如何制作设备 = 而且我真的只是从 Ubuntu 迁移,所以布局有点新,但我喜欢 NMTUI!

关于界面,这看起来很有希望,但我无法让它工作,我尝试了很多。任何帮助表示赞赏。

我读过的其他一些读物

https://www.centos.org/forums/viewtopic.php?t=50183 https://ihazem.wordpress.com/2011/03/15/adding-virtual-interface-to-centosredhat/

这是我遵循的指南: …

networking ip centos pacemaker pcs

1
推荐指数
1
解决办法
7887
查看次数

使用“-z”测试 $1 或 $2 是否为空 - BASH

我在同一个脚本中进行多个突袭监控,如果 EITHER 变量返回 null,我想让脚本发送警报/变红。

我尝试阅读并认为我拥有它,但我尝试的结果从未失败。

对于测试,我让它 grep 失败,这应该导致它失败,但到目前为止,我无法让它失败,它实际上总是通过。

测试环境如下所示:

var="$(sudo /usr/StorMan/arcconf GETCONFIG 1 LD 0 | grep Optimal)"
var1="$(sudo /usr/StorMan/arcconf GETCONFIG 1 LD 1 | grep fail)"
Run Code Online (Sandbox Code Playgroud)

这适用于 1 个变量

if [ -z "$var" ]
Run Code Online (Sandbox Code Playgroud)

我试过了

if [ -z "$var" ] && [ -z "$var1" ]
if [ -z "$var" && -z "$var1" ]
if [[ -z "$var" && -z "$var1" ]]
Run Code Online (Sandbox Code Playgroud)

但无济于事,我相信有人会立刻知道我做错了什么,我很感激阅读这篇文章所花费的时间!

scripting bash shell-script

1
推荐指数
1
解决办法
8830
查看次数