小编The*_*age的帖子

查看所有 iptables 规则

有没有办法iptables更详细地查看规则?

我最近在一系列 IP 中添加了伪装:

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
service iptables save
service iptables restart
Run Code Online (Sandbox Code Playgroud)

这已经完成了我想要的,但是当我使用:

iptables -L
Run Code Online (Sandbox Code Playgroud)

我得到的输出与我通常得到的输出相同:

Chain INPUT (policy ACCEPT)
target    prot opt source        destination

Chain FORWARD (policy ACCEPT)
target    prot opt source        destination

Chain OUTPUT (policy ACCEPT)
target    prot opt source        destination
Run Code Online (Sandbox Code Playgroud)

如何查看规则,包括我添加的规则?(系统为 CentOS 6)

iptables

171
推荐指数
5
解决办法
47万
查看次数

使用 YUM 本地安装 .rpms

我谨慎地问这个问题,因为我不想弄错。

我在我的服务器 (CentOS 6.5) 上本地保存了一个 program_name.rpm 文件。

我以前只是通过导航到它并使用 yum install program_name.rpm 来安装它,它工作正常,但它没有给我任何选项来指定它的安装位置。

是否可以将此 rpm 安装到 /opt/some_directory 而不是它的默认安装位置?

yum rpm centos software-installation

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

Bash 脚本在函数中本地回显

在 bash 脚本中,我尽可能将变量保持在函数的本地,然后从函数中传递我需要的内容,例如 bellow

#!/bin/bash

function FUNCTION() {
    local LOCAL="value"
    echo "$LOCAL"   # return this variable
}

GLOBAL=$(FUNCTION)

echo "$GLOBAL"
Run Code Online (Sandbox Code Playgroud)

但是是否可以在包含函数自己的回声的同时执行此操作,以便如果函数有自己的消息要输出,我不必将它们捕获在变量中

#!/bin/bash

function FUNCTION() {
    local LOCAL="value"
    echo "$LOCAL"                      # return this variable
    echo "This function is done now"   # do not return this variable
}

GLOBAL=$(FUNCTION)

echo "$GLOBAL"                         # should only echo 'value'
Run Code Online (Sandbox Code Playgroud)

bash shell-script function

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

Systemd postgresql 启动脚本

我正在将 postgresql 安装到第二台服务器上

以前我安装了 postgresql,然后使用了提供的脚本

./contrib/start-scripts/linux
Run Code Online (Sandbox Code Playgroud)

放入正确的目录

# cp ./contrib/start-scripts/linux /etc/rc.d/init.d/postgresql92
# chmod 755 /etc/rc.d/init.d/postgresql92
Run Code Online (Sandbox Code Playgroud)

然后我可以按预期执行

# service postgresql92 start
Run Code Online (Sandbox Code Playgroud)

然而,新机器使用的是 Systemd,看起来有一种完全不同的方法来做到这一点

我不想破解并破坏某些东西,所以我想知道是否有人可以指出我如何实现相同结果的正确方向

linux scripting systemd postgresql

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

发送邮件附件

我想知道是否可以在 sendmail 中包含附件。我正在生成具有以下布局的以下 emailfile.eml 文件

From: Company Name <example@nowhere.com>
To: recipient@madeup.com
CC: someoneelse@place.com
Subject: Generated Output

Mime-Version: 1.0

This will be the body copy even though it's terrible
Run Code Online (Sandbox Code Playgroud)

我正在使用这些电子邮件发送

# /usr/sbin/sendmail -t < emailfile.eml
Run Code Online (Sandbox Code Playgroud)

这部分是工作文件,但我想在这封电子邮件中包含一个附件,但我还没有想出如何去做

email sendmail centos

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

在特定行号插入文本

我正在编写一个 bash 脚本,它将根据行中的数据拆分文本文档的内容。

如果原始文件的内容是

01 line
01 line
02 line
02 line
Run Code Online (Sandbox Code Playgroud)

如何使用 bash 插入此文件的第 3 行以导致

01 line
01 line
text to insert
02 line
02 line
Run Code Online (Sandbox Code Playgroud)

我希望在我的脚本中使用 heredoc 或类似的东西来做到这一点

#!/bin/bash

vim -e -s ./file.txt <<- HEREDOC
    :3 | startinsert | "text to insert\n"
    :update
    :quit
HEREDOC
Run Code Online (Sandbox Code Playgroud)

以上当然不起作用,但是我可以在此 bash 脚本中实施任何建议吗?

shell-script text-processing

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

Sendmail 给多个没有抄送的用户

大家好,我想知道是否可以以一种可以在 To: 中串接多个电子邮件地址的方式使用 sendmail

From: sendmail
To: person01@gmail.com;person02@gmail.com
Subject: Did You Both Receive It?

I hope you did
Run Code Online (Sandbox Code Playgroud)

而不是使用

From: sendmail
To: person01@gmail.com
Cc: person02@gmail.com
Subject: Did You Both Receive It?

I hope you did
Run Code Online (Sandbox Code Playgroud)

email sendmail

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

Systemd 服务脚本不回显

我最近在一台机器上安装了 Fedora 22,它使用 systemd init 系统。

我一直在阅读它,现在我需要为 postgresql 创建一个 systemd 启动脚本

为了测试,我创建了以下 shell 脚本 hello_world

#! /bin/sh
#  testing systemctl script

start() {
   echo "Executing Start"
   echo "Testing 01"
   echo "Testing 02"
   echo "Testing 03"
}

stop() {
   echo "Stopping Hello World Script"
}

case "$1" in
   start)
      start
   ;;
   stop)
      stop
   ;;
   restart)
      stop
      sleep 2
      start
   ;; 
   *) exit 1
esac
Run Code Online (Sandbox Code Playgroud)

当我使用终端运行它时,它会按照我的预期运行并回显字符串

. hello_world start
Run Code Online (Sandbox Code Playgroud)

这与“Starting Hello World Script”相呼应,然后我将它放在 /usr/lib/systemd/scripts 中

然后我尝试创建systemd服务脚本如下,hello_world.service

[Unit]
Description=Hello World Testing Script

[Service] …
Run Code Online (Sandbox Code Playgroud)

scripting fedora systemd

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

Bash 脚本 VIM 命令

我有一些文件需要应用一组烦人的重复 VIM 命令。它们是基本的 VIM 命令,只是为了删除我需要文件的进程不支持的一些行。

假设我有一个名为 postgresdb.out 的文件

在这个文件上我将

vim ./postgresdb.out
Run Code Online (Sandbox Code Playgroud)

然后从 VIM 内部我会

:%s/old/new/g
Run Code Online (Sandbox Code Playgroud)

进而

:g/deletethis/d
Run Code Online (Sandbox Code Playgroud)

其次是

:%s/\n\n//g
Run Code Online (Sandbox Code Playgroud)

然后保存文件并开始我的一天

我想知道是否可以编写一个 bash 脚本来执行此过程,而不是一直重新输入

scripting bash vim vi

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