предисловие
Только лысая голова может стать сильнее.
Текст был включен в мою избранную статью на GitHub, Welcome Star.:GitHub.com/Zhongf UC очень…
В этой статье в основном говорится о том, какАвтоматически сохранять локальные файлы на GitHub
Некоторые могут задаться вопросом, почему я сохраняю локальные файлы на GitHub? На самом деле у меня есть только одна причина: я не знаю, почему мойTyporaИногда возникает ситуация невосприимчивости (прямое зависание), что может привести к потере контента, который был написан в течение длительного времени.
Эгг тоже планировал написать статью некоторое время назад, я видел, как он две недели писал статью, и однажды он сказал мне:TyporaФайл битый, как исправить.
В итоге он потерял две недели писательства.
Некоторые люди могут увидеть это и сказать:Кто позволяет вам не использовать продукт, автоматически синхронизироваться с облаком, использовать облачные заметки, если есть такие вещи??
Это тоже разумно, но Typora действительно проста в использовании (не только Typora, есть еще много полезных продуктов, поддерживающих только локальную, без функции синхронизации с облаком).
Итак, я планирую регулярно загружать контент Typora на Github, чтобы избежать ситуации с яйцами.
Компьютерная среда: Mac 10.15.2
этоначинаястатья, вы все должны бытьGit+CrontabВводный урок просто супер!
1. Почему GitHub?
GitHub, по умолчанию все знают, что это такое. Написанные мной статьи будут включены в GitHub для моего последующего обзора:
Если вы подписаны на GitHub, вы знаете: GitHub предоставляет намБесплатный частный репозиторий(Раньше это был публичный репозиторий).
Таким образом, мы можем поместить контент, который мы не хотим публиковать, в частный репозиторий.
Есть две причины, по которым я синхронизирую свои локальные файлы с GitHub:
- GitHub теперь поддерживает приватные репозитории
- Git как программист знает немного, и это действительно удобно.
Вторые руки
Прежде чем мы начнем, мы можем предположить, что если вы хотите регулярно сохранять локально на GitHub, точки знаний, вероятно, следующие:
- Немного знать о GitHub (иметь собственную учетную запись GitHub, создать приватный репозиторий)
- Немного знать команды Git (в среде Git)
- Немного знаком с Shell (скрипт с синхронизацией выполняет загрузку команды Git)
2.1 Создайте частный репозиторий
Как зарегистрироваться на GitHub и создать приватный репозиторий на GitHub, я не буду здесь вдаваться в подробности. Просто щелкните мышью, и все готово
2.2 Загрузить локальные файлы в репозиторий GitHub
Прежде всего, я хочу использовать свой каталог заметок в качестве репозитория, которым может управлять Git.Моя папка называетсяmarkdown
Поэтому я превратил каталог уценки в репозиторий, которым может управлять Git.
Сначала попробуйте посмотреть, сможете ли вы отправить локальный файл на GitHub, поэтому давайте сначалаadd
немного
потомcommit
немного
Перед пушем нам нужно посмотреть, связана ли наша машина с репозиторием GitHub (обычно не в первый раз) Во-первых, нам нужно создать SSH-ключ. Таким образом, мы можем выполнить
ssh-keygen -t rsa -C "youremail@example.com" --(引号的是自己的账号邮箱)
В течение периода мы просто нажимаем Enter до упора.После выполнения мы можем перейти в домашнюю директорию пользователя, чтобы найти.ssh
содержание
идти с.ssh
каталог, чтобы найти файл для открытого ключаid_rsa.pub
Просто скопируйте информацию об открытом ключе на GitHub и скопируйте соответствующий контент. Соответствующий адрес GitHub:GitHub.com/settings/can…
Затем мы связываем локальный репозиторий с репозиторием GitHub:
git remote add origin git@github.com:ZhongFuCheng3y/markdown.git
После ассоциации мы можем отправить локальный склад на удаленный склад.
git push -u origin master
После выполнения вы можете обнаружить, что что-то пошло не так. Пуш не может подняться, ошибка следующая:
Нам нужно сначала синхронизировать readme удаленного хранилища с локальным хранилищем, используя команду:
git pull --rebase origin master
После этого мы видим, что readme удаленного хранилища синхронизировался с локальным:
Затем мы выполняем команду push, чтобы отправить локальный файл на удаленное хранилище:
git push -u origin master
Перейдите в репозиторий GitHub, и вы увидите, что локальные файлы были синхронизированы с GitHub:
2.3 Напишите сценарии для автоматического планирования загрузки
Сначала пишем файл скрипта, этот скрипт очень простой, содержание следующее:
#!/bin/bash
cd /Users/3y/markdown
git add .
git commit -m "java3y auto save"
git push -u origin master
На самом деле команда выше написана заново, и тогда у нас есть этот скрипт. Я назвал этот скриптautoSave.sh
.
Далее добавляем разрешения этому скрипту (для удобства я простоchmod 777
)
После того, как у нас есть сценарий, мы можем поместить его вcrontab
Выполнить на Mac, использовать на Maccrontab
Очень удобно. Нам нужно запомнить только две команды:
crontab -e --编辑crontab
crontab -l --查看crontab的命令
хорошо, так что мы можем написать команду crontab. Здесь все очень просто, если мы немного понимаемcron表达式
Ничего страшного, неважно, что ты не понимаешь, Baidu: "cron онлайн генератор"Вы можете звонить в любое время, когда захотите.
Поэтому я написал следующее выражение cron:
* * * * * /Users/3y/autoSave.sh > ~/b.txt 2>&1 &
После окончания выполняемcrontab -l
Я обнаружил, что эта команда снова находится в crontab:
Объясните эту команду:
-
* * * * *
Пометить, что эту строку команды нужно выполнять каждую минуту -
/Users/3y/autoSave.sh
Отметить местоположение моего скрипта (необходимо использовать здесьабсолютный путь) -
> ~/b.txt 2>&1 &
Введите результат выполнения скрипта вb.txt
в файле
Заканчивать! Мы видим, что содержимое локального файла загружается на GitHub каждую минуту.
После отладки мы можем вывести лог на/dev/null
2.3.1 Потенциальные ямы, с которыми вы можете столкнуться
Когда я впервые записал команду в crontab, я не распечатал результат выполнения. Я обнаружил, что вызов не был успешным, и потребовалось много времени, чтобы выяснить это (я подозревал, что проблема с моим компьютером crontab)...
Я также написал еще один скрипт в то время, чтобы увидеть, есть ли какие-либо проблемы с моим crontab, а затем позжеталантзаписать результат выполнения в файл
- Независимо от того, выполняется ли программа или сценарий, обязательно записывайте в журнал при написании
Я также столкнулся со странными ямами в этот период, я перечисляю их здесь, я надеюсь, что последующие люди увидят мою статью и решат подобные проблемы:
- После написания скрипта не забудьте добавитьисполняемыйразрешение
- При сохранении crontab столкнитесь
"/usr/bin/vi" exited with status 1
, можно попробовать убить кронтаб, а потом перезапустить. или в.zshrc
Добавить кexport EDITOR=vim
- Если вы встретите на выходе результатOperation not permitted, добавить iTerm с полным доступом к диску
- Откройте Системные настройки Mac> Безопасность и конфиденциальность> Конфиденциальность> Полный доступ к диску, добавьте iTerm и проверьте его.
- свойства файла с
@
, не помещайте скрипты и папки вDownload
В каталоге у Mac будут странные проблемы с правами доступа при выполнении crontab.
2.4 Команды, используемые на этот раз
служба кронтаб:
开启:sudo /usr/sbin/cron start
重启:sudo /usr/sbin/cron restart
停止:sudo /usr/sbin/cron stop
编写crontab:crontab -e
查看crontab:crontab -l
Убейте процесс:
kill -9 pid
Команды, связанные с Git:
参考廖雪峰Git教程撸一下就可以了:
https://www.liaoxuefeng.com/wiki/896043488029600
Наконец
В этой статье в основном используетсяMac
Чтобы объяснить, как автоматически синхронизировать локальные файлы с GitHub, многие студенты подумают:Брат, я использую Windows, скажи мне, в чем польза Mac?
То, чего может достичь Mac, может достичь и Windows, но может быть небольшая разница в способах и средствах, которыми заинтересованные студенты могут заняться.
Прежде чем я написал эту статью, я не знал, что crontab Mac столкнется с таким количеством проблем, и мне потребовалось много времени, чтобы решить их. Я тоже не знаю этих вопросов. Но мы можем найти решение, найти решение, и, в конце концов, это можно сделать.
может ты увидишь моюТерминалКрасочный, я используюiTerm+一系列插件
состоящий из (Mac), учащиеся, которым нужен соответствующий учебник, могут ответить под общедоступной учетной записью "инструмент" получить
Учащимся, прочитавшим эту статью, может быть, что сказать, потому что crontab + скрипт может дополнить ряд интересных вещей,Не стесняйтесь оставлять сообщение в области комментариев, какие интересные вещи вы сделали с crontab.?
Использованная литература:
-
Причины и решения для crontab, неспособного выполнять сценарии
-
Руководство по использованию crontab в macOS и решение проблем
-
Подробное объяснение команды Crontab для запланированных задач Linux.
Эта книга была включена в мои избранные статьи на GitHub, добро пожаловать, звезда:GitHub.com/Zhongf UC очень…
рад вывестигалантерейные товарыОбщедоступный номер технологии Java:Java3y. В публичном аккаунтеБолее 300 оригинальных статейТехнические статьи, обширные видеоресурсы, красивые карты мозга,Следуйте, чтобы получить его!
Большое спасиботалантМы можем видеть здесь, если эта статья хорошо написана, я чувствую себя "три криво"что-тоеслипопросить лайк Пожалуйста, следите за ️ поделитесь пожалуйста 👥 Спросите сообщение 💬Это правда для меняочень полезно! ! !
Творить не легко Ваша поддержка и признание - самая большая мотивация для моего творчества Увидимся в следующей статье!