Skip to content

Instantly share code, notes, and snippets.

import time
time.sleep(7)
print('sosi')
Удалить файлы, совпадающие по маске '*.gz* в директории /root/backups/ которые старше 2х дней.
find /root/backups/ -type f -mtime +2 -name '*.gz' -execdir rm -- '{}' \;
Синхронизировать содержимое папки /var/www/tatevents_backend/media/ в /backup/tatevents_prod/media/
rsync -a /var/www/tatevents_backend/media/ /backup/tatevents_prod/media/
P.S.
Когда вы указываете путь к директории в качестве источника, обращайте внимание на закрывающий слэш – символ / в конце имени директории.
Закрывающий слэш означает "внутреннее содержимое".
Например, если в конце /source/ есть слэш, rsync скопирует содержимое /source/ в /destination/.
@blohinn
blohinn / run python by cron
Last active January 23, 2020 08:52
Запуск python скриптов через cron в sh обертке
* * * * * /home/blohinn/project/run-python-script-wrapper.sh > /tmp/cronlog.log 2>&1
Спец. символы bash:
http://www.linux-ink.ru/static/Docs/Courses/adv-user-guide/adv-user-guide/ch02s03.html
Бэкап данных (+ создание таблиц)
Подразумевается, что бд tatcamps.dev.postgres существует, но таблицы в ней удалены для создания бэкапов
docker exec -t tatcamps.prod.postgres pg_dump -U tatcamp --column-inserts tatcamp > dump_`date +%d-%m-%Y"_"%H_%M_%S`.sql
docker exec -t ulmts.postgres psql -U ulmts ulmts -t -c "drop schema public cascade; create schema public;"
cat your_dump.sql | docker exec -i tatcamps.dev.postgres psql -U tatcamp -d tatcamp
@blohinn
blohinn / backup.py
Created April 24, 2019 15:37
Backup my project dir
import os
import glob
dirs = glob.glob('*/')
exclude = ['venvs', '_backups']
for _dir in dirs:
if _dir[:-1] in exclude:
continue
os.system("rsync -av --progress {} ./_backups/ --exclude dockervolumedev --exclude dockervolumeprod --exclude .idea --exclude .git --exclude static --exclude media --exclude docker-volumes-dev --exclude docker-volumes-prod --exclude __pycache__ --exclude node_modules --exclude env --exclude venv".format(_dir[:-1]))
@blohinn
blohinn / Combining Prettier with ESLint + Airbnb Style Guide in VSCode
Created August 26, 2018 11:12
Combining Prettier with ESLint + Airbnb Style Guide in VSCode
https://blog.echobind.com/integrating-prettier-eslint-airbnb-style-guide-in-vscode-47f07b5d7d6a
Before we begin, you will have to install npm and then npx.
Download the ESLint and Prettier extensions for VSCode.
Install the ESLint and Prettier libraries into our project. In your project’s root directory, you will want to run: npm install -D eslint prettier
Install the Airbnb config. If you’re using npm 5+, you can run this shortcut to install the config and all of its dependencies: npx install-peerdeps --dev eslint-config-airbnb
Install eslint-config-prettier (disables formatting for ESLint) and eslint-plugin-prettier (allows ESLint to show formatting errors as we type) npm install -D eslint-config-prettier eslint-plugin-prettier
Create .eslintrc.json file in your project’s root directory:
@blohinn
blohinn / models.py
Created April 16, 2018 16:09
SQL Alchemy Examples With Cascade Deleting
from . import db
# Many To Many
class Exam(db.Model):
__tablename__ = 'exams'
score = db.Column(db.Integer, nullable=False)
student_id = db.Column(db.Integer, db.ForeignKey('students.id'), primary_key=True)
@blohinn
blohinn / TODO API Example.py
Last active March 4, 2018 15:33
В дополнение к презентации "Введение в API".
from flask import Flask, request, jsonify
from flask_sqlalchemy import SQLAlchemy
import datetime
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///db.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
db = SQLAlchemy(app)
@blohinn
blohinn / tokens.md
Created February 4, 2018 09:47 — forked from zmts/tokens.md
Про токены, JSON Web Tokens (JWT), аутентификацию и авторизацию. <Форкнул, чтобы не потерять>

Token-Based Authentication(JWT)

Preconditions:

В данной заметке рассматривается работа JWT с симметичным алгоритмом шифрования (HS256/HS384/HS512)

Основы:

Аутентификация(authentication, от греч. αὐθεντικός [authentikos] – реальный, подлинный; от αὐθέντης [authentes] – автор) - это процесс проверки учётных данных пользователя (логин/пароль). Проверка подлинности пользователя путём сравнения введённого им пароля с паролем, сохранённым в базе данных пользователей;

Авторизация(authorization — разрешение, уполномочивание) - это проверка прав пользователя на доступ к определенным ресурсам.

@blohinn
blohinn / Yii2 не в корне, а папке web
Last active March 22, 2018 19:27
Yii2 не в корне, а папке web
корень с ии2
Options +FollowSymLinks
IndexIgnore */*
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/(webapp/web)
RewriteRule ^assets/(.*)$ /webapp/web/assets/$1 [L]
RewriteRule ^css/(.*)$ web/css/$1 [L]
RewriteRule ^js/(.*)$ web/js/$1 [L]
RewriteRule ^images/(.*)$ web/images/$1 [L]