Вам нужно будет получить доступ к странице администрирования маршрутизаторов и перенаправить любой порт Apache на IP-адрес вашего ПК (обычно 80). Чтобы получить доступ к вашему маршрутизатору, как правило, 192.168.1.254, если вы не отредактировали IP-адрес или не получили другую форму настройки, если вы, вероятно, не захотите этого совета.
Вам также потребуется использовать ufw, чтобы разрешить порт 80 входящий и исходящий с вашего ПК.
sudo ufw enable
sudo ufw allow 80/tcp
Это позволит вам получить доступ к вашему веб-серверу, если у вас есть ваш брандмауэр, как вы должны.
Также предлагайте, если вы откроете его в сети, чтобы сделать некоторое упрощение веб-сервер перед началом работы. Посмотрите ЗДЕСЬ
Скрипт ниже ищет дубликаты файлов в до 10 каталогов одновременно, ищет дубликаты в комбинированных каталогах.
Он должен быть значительно быстрее, чем fdupes (работает fdupes -r) и fslint; на сравнительно небольшом каталоге в 40 ГБ, локально сохраненном, для создания списка дубликатов потребовалось 5 секунд, а для fdupes и fslint потребовалось намного больше (~ 90/100 секунд). В более крупном каталоге (700 ГБ, ~ 350000 файлов) на относительно медленном внешнем USB-накопителе это заняло 90 минут. С fdupes это было бы более 200-250 минут, глядя на индикацию выполнения (что приятно, сценарий ниже не показывает прогресс), но я не дождался его полностью. Я хотел бы упомянуть, что, например, fslint предлагает дополнительные функции, которые сценарий не делает (так оно есть), поэтому сравнение строго связано с созданием списка дубликатов.
Кроме того, скорость зависит от части как быстро читается диск: я тестировал несколько носителей (ao на сетевом диске) с огромными различиями, особенно в небольших каталогах, где создание списка файлов занимает относительно большую часть работы (время).
Суть в том, что она не будет быстрой работой, и в этом случае вы можете спросить себя, не слишком ли велики каталоги.
Когда скрипт находит дубликаты, дубликаты перечисляются следующим образом:
Creating file list... /home/jacob/Bureaublad/test2
Creating file list... /home/jacob/Bureaublad/foto
Creating file list... /home/jacob/Bureaublad/Askubuntu
Checking for duplicates (10790 files)...
------------------------------------------------------------
> found duplicate: test1.txt 2
/home/jacob/Bureaublad/test2/test1.txt
/home/jacob/Bureaublad/test2/another directory/test1.txt
------------------------------------------------------------
и т. Д.
#!/usr/bin/env python3
import os
import sys
total_filelist = []
total_names = []
def find_files(directory):
l = []; l2 = []
for root, dirs, files in os.walk(directory):
for file in files:
l.append(file)
l2.append(root+"/"+file)
return (l, l2)
i = 1
while i <= 10:
try:
dr = (sys.argv[i])
print("Creating file list...", dr)
total_filelist = total_filelist+find_files(dr)[1]
total_names = total_names+find_files(dr)[0]
i = i+1
except IndexError:
break
print("Checking for duplicates ("+str(len(total_names)),"files)...")
for name in set(total_names):
n = total_names.count(name)
if n > 1:
print("-"*60,"\n> found duplicate:",
name, n, "\n")
for item in total_filelist:
if item.endswith("/"+name):
print(item)
print("-"*60, "\n")
Скопируйте его в пустой файл, сохраните его как find_dupes.py и запустите его командой:
python3 <script> <directory1> <directory2> <directory3>
До 10 каталогов
It относительно просто добавить дополнительные функции; переместить дубликаты в другой каталог, например, переименовать и т. д., чтобы вы могли вручную или автоматически решить, какой файл сохранить.
Ваши каталоги кажутся огромными. Чтобы сделать работу разумно возможной, существует еще один, более сложный способ предотвратить «удушье» системы: вместо выполнения задания на всех типах файлов (расширений) сразу вы можете сократить задание на в сочетании . Небольшой тест в каталоге из 30 000 файлов сократил время с апреля. 20 секунд (все файлы) до 0,3 секунды для одного расширения.
Чтобы заставить скрипт искать дубликаты только одного типа файла, замените раздел скрипта:
def find_files(directory):
l = []; l2 = []
for root, dirs, files in os.walk(directory):
for file in files:
l.append(file)
l2.append(root+"/"+file)
return (l, l2)
by:
def find_files(directory):
l = []; l2 = []
for root, dirs, files in os.walk(directory):
for file in files:
if file.endswith(".py"): # example .py extension
l.append(file)
l2.append(root+"/"+file)
return (l, l2)
Чтобы перечислить все существующие расширения файла в каталоге, вы можете использовать следующий скрипт:
#!/usr/bin/env python3
import sys
import os
l = []
for root, dirs, files in os.walk(sys.argv[1]):
for f in files:
if (
f.startswith("."),
f.count(".") == 0,
f.endswith("~"),
) == (False, False, False):
l.append(f[f.rfind("."):])
for item in set(l):
print(item)
Скопируйте его в пустой файл, сохраните его как find_extensions.py и запустите его командой:
python3 <script> <diretory>
Пример:
.txt
.mp3
.odt
.py
.desktop
.sh
.ods
Если вы хотите использовать очень удобный графический интерфейс, попробуйте FSlint из Software Center.
(я вижу, что @lemonsqueeze предложил это в комментариях выше).
Вот ответ, который описывает использование FSlint: https://askubuntu.com/a/472244/100356