如果使用 firewall-cmd 打开一个端口供公众使用,我想将此端口限制为特定 IP,我在此SITE上找到了答案。
我使用以下方法打开它:
$ firewall-cmd --permanent --zone=public --add-port=10050/tcp
$ firewall-cmd --reload
Run Code Online (Sandbox Code Playgroud)
现在使用我发现的信息中的信息,我想将此端口的访问权限限制为特定的 IP 地址。我是否需要先从公共访问中删除此端口?
或者我可以按如下方式添加新规则,这样就能解决我的问题吗?
$ firewall-cmd --new-zone=special
$ firewall-cmd --permanent --zone=special --add-rich-rule='
rule family="ipv4"
source address=”123.1.1.1"
port protocol="tcp" port="10050" accept'
Run Code Online (Sandbox Code Playgroud)
我尝试了以下方法:
$ firewall-cmd --zone=public --remove-port=10050/tcp
$ firewall-cmd --reload
Run Code Online (Sandbox Code Playgroud)
但是当我运行以下命令时:
$ firewall-cmd --list-ports
Run Code Online (Sandbox Code Playgroud)
10050/tcp 仍然显示。
请理解我对服务器端配置不太熟悉。
解决方案:不要忘记--runtime-to-permanent
$ firewall-cmd --zone=public --remove-port=10050/tcp
$ firewall-cmd --runtime-to-permanent
$ firewall-cmd --reload
Run Code Online (Sandbox Code Playgroud) 尝试学习如何使用 php 实现 cron 作业。
cron 的格式是这样的 /etc/crontab
* 13 * * * /usr/bin/php /var/www/path/to/file/database-bkup-test.php &>/tmp/mycroncommand.log
Run Code Online (Sandbox Code Playgroud)
所以这应该每天运行 13 小时(下午 1 点)
我查看了服务的状态
须藤 systemctl 状态 crond.service -l
发现以下错误:
(/usr/bin/php) 错误 (getpwnam() 失败)
我使用 PHP 进行了设置,脚本基本上是这样的:
$today = date('Y-m-d');
$user = 'db_user';
$password = 'db_password';
$host = '127.0.0.1'; //this is actually replaced with an address to another remote server
$port='3306';
$database='database_name';
exec('mysqldump --user='.$user.' --password='.$password.' --host='.$host.' --port='.$port.' '.$database.' > /db-bkup/db-'.$today.'.sql');
Run Code Online (Sandbox Code Playgroud)
最终结果将是一个数据库转储到一个文件中:
db-2017-03-24.sql
有人可以帮助我吗?
我花时间阅读并尝试实现这一点。我发现这篇文章非常有帮助
由于作业失败,整个过程甚至没有在/tmp.
更新
添加了一个简单的 cron 来 …