Some SSH Commands OS : Ubuntu 22.04
sudo scp -r -P22 /var/www/html/* [target_user]@[target_server_ip]:/var/www/html/tasima_yedekleri/
find /var/www/html/[search_folder_path]/ -name "*.[search_extension]" -exec grep -l "[search_text]" {} \;
cat /etc/os-release
sudo chown -R [user]:[user] /var/www/html/[folder]/
sudo chmod -R 0777 /var/www/html/[folder]/
cp -R [folder]/* [target_folder]/
mv old_file.php new_file.php
systemctl list-units --all --type=service --no-pager | grep running
find / -iname info.php
Root ile mysqle bağlanıyoruz
mysql -u root -p
Kullanıcıyı oluşturuyoruz
CREATE USER 'orhancelik'@'%' IDENTIFIED BY '12345';
Kullanıcıları kontrol ediyoruz
SELECT * FROM mysql.user;
Sadece belirli yetkileri vermek istersek
GRANT SELECT, INSERT ON [veritabanı adı yada tüm veritabanı (*)].* TO 'orhancelik'@'%';
Tüm yetkileri vermek istersek
GRANT ALL ON *.* TO 'orhancelik'@'%' WITH GRANT OPTION;
Verdiğimiz izinleri silmek istersek
REVOKE SELECT, INSERT ON *.* FROM 'orhancelik'@%;
Kullanıcı parolasını değiştirmek istersek (Versiyona göre değişiyor)
SELECT version();
MySQL 5.76 üzerindeyse
ALTER USER 'orhancelik'@'%' IDENTIFIED BY 'yeni şifre';
MySQL 5.76 altındaysa
SET PASSWORD FOR 'orhancelik'@'%' = PASSWORD('yeni şifre');
Kullanıcıyı yetkilerini görmek istersek
SHOW GRANTS FOR 'orhancelik'@'%';
Kullanıcıyı silmek istersek
DROP USER 'orhancelik'@'%';
Değişiklikleri anında uyguluyoruz ve çıkış yapıyoruz
FLUSH PRIVILEGES;
\q
DB ve DB deki tablo boyularını görmek istersek
SELECT TABLE_SCHEMA AS `Database`,
ROUND(SUM(DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024, 2) AS `Size (MB)`
FROM information_schema.TABLES
WHERE TABLE_SCHEMA='db_name';
SELECT TABLE_SCHEMA AS `Database`,
TABLE_NAME AS `Table`,
ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024) AS `Size (MB)`
FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'db_name'
ORDER BY (DATA_LENGTH + INDEX_LENGTH) DESC
mysqldump --routines=true --triggers --events -u root -p [db_name] --ignore-table=[table_name_1] --ignore-table=[table_name_2] > export_db.sql
OS : Ubuntu
VH : Apache
// Pfx dosyasını sunucuya atıyoruz, /etc/ssl/<certificate_name>.pfx.
// Private Key oluşturuyoruz.
openssl pkcs12 -in "<certificate_name>.pfx" -nocerts -out private.key -nodes
// Sertifikayı oluşturuyoruz.
openssl pkcs12 -in "<certificate_name>.pfx" -nokeys -out certificate.crt
// Virtual Host ayarlarımızın olduğu dosyayı açıyoruz.
nano /etc/apache2/mods-enabled/<your-site>.conf
// Private Key ve SSL yollarınızı apacheye veriyoruz.
SSLCertificateFile /etc/ssl/<certificate_name>.pfx.
SSLCertificateKeyFile /etc/ssl/<certificate_key>.pfx.
// Apacheye yeniden başlatıp çıkıyoruz.
sudo service apache2 restart && exit
OS : Ubuntu
// SENARYO :
// Node JS ile çalışan bir servisimiz var, ve sunucu reboot yada restart olduğu zaman bu servisin otomatik olarak ayağa kaldırılmasını istiyoruz.
// Aksi takdirde herhangi bir sebepten dolayı sunucu yeniden başlatılırsa bu tarz servisleri ayağa kaldırmayı unutuyoruz ve istek atıldığı zaman erişim sağlanamıyor.
// bash kodlarımızı düzenli bir yerde tutmak için shell_scripts adında bir klasör oluşturuyoruz.
mkdir shell_scripts
// Oluşturduğumuz klasörün içine giriyoruz.
cd shell_scripts
// Nano yardımıyla bir bash script dosyası oluşturuyoruz.
nano up_pm2_node_service.sh
// İçerisine aşağıdaki scripti ekliyoruz.
#!/bin/bash
up_pm2_node_service(){
pm2 start /var/www/html/cron/server.js
}
up_pm2_node_service
// Kaydediyoruz
Ctrl + X => ardından (y) tuşuna basıyoruz.
// Yetkilerini ayarlıyoruz.
chmod u+x up_pm2_node_service.sh
// Script hazır şimdi bu shell scriptini sunucu reboot olduğunda otomatik çalışmasını ayarlayacağız.
// Ben bunu crontab ile yapıyorum.
// Crontab açıyoruz.
crontab -e
// İçerisine aşağıdaki satırı ekliyoruz.
@reboot /shell_scripts/up_pm2_node_service.sh
// Kaydediyoruz
Ctrl + X => ardından (y) tuşuna basıyoruz.
// Apacheye yeniden başlatıp çıkıyoruz.
sudo service apache2 restart && exit