- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
В 2023 году Google заблокировал более 170 млн фальшивых отзывов на Картах
Это на 45% больше, чем в 2022 году
Оксана Мамчуева
Все что нужно знать о DDоS-атаках грамотному менеджеру
И как реагировать на "пожар", когда неизвестно, где хранятся "огнетушители
Антон Никонов
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Здравствуйте,
Занимаюсь архивированием одной папки на сервере. В ней хранится вся почта. Проблема в том, что размер папки достиг 7 гигабайт, а количество файлов в ней - порядка 30000. Из-за этого (а, возможно, и нет) я не могу выполнить архивацию до конца. tar отрабатывает нормально, но не до конца - рвется соединение с самим сервером с сообщением "packet write wait, broken pipe".
Понимаю, что в этом случае может быть проще было бы делать инкрементальный backup с помощью rsync на отдельный сервер. Но у меня уже есть архивы в tar.gz, которые все лежат в определенном месте (мной проплаченном). Хотелось бы, чтобы и почта была там.
Что делал:
/root/.ssh/config
ServerAliveInterval 0
/etc/ssh/sshd_config
ClientAliveInterval 0
Не помогало, увеличил 0 до аномально больших цифр - всё равно не помогает.
Знающие люди, подскажите пожалуйста, куда копать. Заранее спасибо!
Рвётся соединение? Вы через что пытаетесь команду запустить то?
Разделите папку на подпапки (по первому символу в названии файла), а потом архивируйте каждую подпапку.
a.tar
b.tar
c.tar
...
z.tar
0.tar
1.tar
2.tar
...
9.tar
LEOnidUKG,
Команда запускается прямо с сервера, к которому я подсоединяюсь по ssh.
fliger,
Вы имеете в виду, разделить средствами tar? Чтобы каждый архив имел определенный размер? Или что-то другое? Физически делить папку не могу, т.к.там подпапки на почтовые адреса, служебные папки... всё на postfix/dovecot завязано. Папка - как она есть. Только если средствами самого архиватора как-то разделить.
Запустите команду архивации через screen и даже при потере связи она продолжит свою работу.
mark2011, А почему не используете Duplicity?
Используйте терминальный мультиплексор, например tmux(есть так же screen, но tmux посовременнее)
https://ru.wikipedia.org/wiki/Tmux
https://wiki.archlinux.org/index.php/Tmux_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)
С ним вам будет абсолютно пофиг на разрывы соединений ибо вы всегда сможете переподключится к мультиплексору
Вкратце вот инструктаж после его установки:
1. Подключаетесь через ssh к серверу, выполняете команду tmux и попадаете в терминал мультиплексора, там уже запускаете создание бекапа, а дальше можете вообще закрывать ssh сессию
2. Вы закрыли ssh сессию или она оборвалась, подключайтесь заново по ssh и введите tmux attach, вы попадете в ту же консоль, которая была до обрыва или отключения
cloud-shield, swank,
спасибо за отличные советы! :)
cloud-shield, начал использовать screen - это именно то, что нужно в моей ситуации! Спасибо огромное, тему можно считать исчерпанной.
Да, screen хорошо помогает в такой ситуации.
Но есть и более нативные способы. Например, если нет возможности его поставить или использовать, или по какой-то другой причине (например лень), то любые процессы можно запускать сразу в фоновом режиме, это ещё более простой метод.
Есть два варианта:
1. Запустить команду архивации сразу в фон, для этого нужно поставить знак амперсанда на её конце.
2. Если команда уже запущена, выполнена половина, и тут вам нужно отвлечься либо перехватить консоль для дальнейшей работы, можно отправить в фон уже запущенный процесс. Для этого приостанавливаете процесс комбинацией клавиш Ctrl+Z. Это пауза, заморозка процесса на любой стадии выполнения.
Затем даете команду
Она отправляет приостановленный только что процесс в фон.
Второй способ бывает полезен, когда нужно передать какие-то аргументы процессу, по запросу, например пароль (при запуске сразу в фоне такой возможности обычно нет). Например запустить процесс копирования большого количества файлов между серверами по ssh. Запустили как обычно, он запросил пароль к удаленному серверу, вы его ввели, началось копирование. Теперь приостанавливаете, и отправляете в бэкграунд этот процесс. После можно даже отключаться от сервера, процесс продолжит работу.
Потом вернетесь и проверите. Как? Через просмотр наличия/отсутствия процесса в ps, например.
Ах да, в обоих случаях процесс можно вытащить из фона обратно командой fg
Пардон, ещё раз поднимаю темку.
Дело вот в чём. Если я запускаю команду через screen, всё нормально, всё работает. Но у меня-то была идея всё это дело выполнять по крону. Ну и вот... сделал соответствующую запись, но она не выполнилась. Смотрю - а мне сообщение "Must be connected to a terminal".
Я как бы знаю, что это такое :) но не могу понять причину появления такой записи. Погуглил - люди советуют сначала запустить такое:
script /dev/null
тоже не очень понимаю, к чему это приведет.
redeyer, ваш вариант не приведёт к описанному выше? Как думаете? Я сейчас, конечно, запустил процесс вручную, и он работает, но всё равно, хотелось бы, чтобы всё по крону делалось.
Запускайте сразу в фоне командой nohup, результат выполнения можно контролировать в логе nohup.log. При выходе из терминалки процесс не прервется.
nohup tar param > nohup.log &
tar с какими параметрами запускаете?