Если на вашем компьютере установлены какие-либо брандмауэры, вам необходимо добавить правила портов для этих брандмауэров. Примеры межсетевого экрана :iptables
,ufw
В большинстве случаев разработчики настраивали почтовые серверы типа dovecot и postfix, но забывали добавить правила для таких портов, как 25
, 143
, 587
, 993
.
ufw status // this will list all current rules
ufw allow [port] //For example: ufw allow 25
//SMTP
sudo iptables -A INPUT -p tcp --dport 25 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 25 -m conntrack --ctstate ESTABLISHED -j ACCEPT
//IMAP
sudo iptables -A INPUT -p tcp --dport 143 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 143 -m conntrack --ctstate ESTABLISHED -j ACCEPT
//IMAPS
sudo iptables -A INPUT -p tcp --dport 993 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 993 -m conntrack --ctstate ESTABLISHED -j ACCEPT
//POP3
sudo iptables -A INPUT -p tcp --dport 110 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 110 -m conntrack --ctstate ESTABLISHED -j ACCEPT
//POP3S
sudo iptables -A INPUT -p tcp --dport 995 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 995 -m conntrack --ctstate ESTABLISHED -j ACCEPT
Решение на основе оболочки -также может работать, так как задача здесь достаточно проста (простое добавление фрагмента строки к имени файла)
for file in *.py; do newname="$file.backup"; mv "$file" "$newname"; done
Если возможно, что такого файла не существует, вам нужно явно отловить этот случай. Предполагая bash
, вы можете использовать опцию nullglob
:
shopt -s nullglob; for file in *.py; do newname="$file.backup"; mv "$file" "$newname"; done
или явно проверьте, существует ли файл:
for file in *.py; do newname="$file.backup"; [ -f "$file" ] && mv "$file" "$newname"; done
Если рассматриваемые файлы также могут находиться в подкаталогах -, все становится сложнее. Начиная с версии bash
v4, вы можете использовать опцию globstar
:
shopt -s globstar; for file in **/*.py; do newname="$file.backup"; mv "$file" "$newname"; done
Опять же, вам, возможно, придется объединиться с shopt -s nullglob
, чтобы учесть случай, когда такого файла не существует.