Linux Cron 指令
{{% notice style="info" %}}
crontab -l 列出該使用者擁有的 crontab 指令
crontab -e 編輯該使用者的 crontab 指令
crontab -r 將使用者的 crontab 全部清除!( 小心使用 )
crontab -u 改變排程的執行身分: crontab -u user filename
{{% /notice %}}
參數特殊字符意義
{{% notice style="info" %}}
【*】:星號,代表任何時刻都接受的意思
【,】:逗號,代表分隔時段。例如:30 9,17 * * * command,代表早上 9 點半和下午五點半都執行 command
【-】:減號,代表一段時間範圍。例如:15 9-12 * * * command,代表從 9 點到 12 點的每個 15 分都執行 command。
【/n】:斜線,n 代表數字,表示每個 n 單位間隔。例如:*/5 * * * * command,代表每隔 5 分鐘執行一次 command。
{{% /notice %}}
還有一些人性化的參數,一次取代全部五個數字參數
{{% notice style="info" %}}
【@reboot】 :僅在開機的時候執行一次。【@yearly】 :一年執行一次,和0 0 1 1 * command效果一樣。
【@annually】:(和@yearly一樣)
【@monthly】:一個月執行一次,和0 0 1 * * command效果一樣。
【@weekly】:一個星期執行一次,和0 0 * * 0 command效果一樣。
【@daily】:每天執行,和0 0 * * * command效果一樣。
【@midnight】:(和@daily一樣)
【@hourly】 :每小時執行,和0 * * * * command效果一樣。
{{% /notice %}}
設定完成後將 cron 重新啟動
admin@file-server2#/etc/init.d/cron restart**
每周備份一次
admin@File-Server2:~~# sudo -i
root@File-Server2:~~# cd /etc
root@File-Server2:~~# vi crontab
增加以下每周六晚上8點備份
{{% notice style="info" %}}
分 時 日 月 週 擁有者 執行命令
0 20 * * 6 root mysqldump -u xwiki -pd6g981a0 xwiki | gzip > /volume1/web/xwiki_db_date +"\%Y-\%m-\%d"
.sql.gz
週→0&7 為星期日
{{% /notice %}}
加上強制忽略 dump 錯誤
mysqldump -u xwiki -pd6g981a0 --insert-ignore xwiki | gzip > /volume1/web/xwiki_db_`date +"%Y-%m-%d"`.sql.gz
synoservice -restart crond
40 1 * * * userxx /usr/bin/rm
date --date="-5 day" +\%Y-\%m-\%d*.gz
備份還原
mysql -u userName -p -f -D dbName < script.sql
-p: use password
-f force, ignore error
-D: database name
{{% /notice %}}
目前設定 192.168.1.20 crontab -e
{{% notice style="info" %}}
10 20 * * 6 zon pg_dump o12_test | gzip > /home/zon/odoo_db_date +"\%Y-\%m-\%d-\%H-\%M-\%S"
.gz
0 20 * * 6 zon mysqldump -u xwiki -pd6g981a0 xwiki --insert-ignore | gzip > xwiki_db_date +"\%Y-\%m-\%d-\%H-\%M-\%S"
.gz
30 20 * * 6 zon mysqldump -u openkm -pd6g981a0 okmdb --insert-ignore | gzip > openkm_db_date +"\%Y-\%m-\%d-\%H-\%M-\%S"
.gz
40 20 * * 6 zon cp -u .gz /run/user/1000/gvfs/smb-share:server=file-server2.local,share=web
50 20 * * 6 zon cp -u .pdf /run/user/1000/gvfs/smb-share:server=file-server2.local,share=web
0 21 * * 6 zon cp -u -R /home/zon/tomcat-8.5.24/repository /run/user/1000/gvfs/smb-share:server=file-server2.local,share=web/OpenKm_file/
{{% /notice %}}
/run/user/1000/gvfs/smb-share:server=file-server2.local,share=web
先在pcmanfm 裡掛載並永久紀錄帳號密碼,就可以免用mount.cifs or mount nfs,→須另外安裝nfs cifs 等套件
cp -u 只複製取代有較新的檔案
啟動 crontab
sudo service cron reload
sudo service cron start
or
/etc/init.d/cron reload
/etc/init.d/cron start
db_backup.sh
#!/bin/bash
password="******"
username="admin"
Ip="192.168.1.10"
#sshpass -p "$password" scp /<PATH>/final.txt $username@$Ip:/root/<PATH>
# File-server2 不支援 scp
bakDates=`date +"%Y-%m-%d_%H:%M:%S"`
#pg_dump o13_new1 | gzip > /home/zon/db/o13_new1_`date +"%Y-%m-%d-%H-%M-%S"`.gz
#pg_dump o13_fufeng | gzip > /home/zon/db/o13_fufeng_`date +"%Y-%m-%d-%H-%M-%S"`.gz
#mysqldump -u 'xwiki' -p'd6g981a0' xwiki --insert-ignore | gzip > /home/zon/db/xwiki_db_`date +"%Y-%m-%d-%H-%M-%S"`.gz
#mysqldump -u 'openkm' -p'd6g981a0' okmdb | gzip > /home/zon/db/openkm_db_`date +"%Y-%m-%d-%H-%M-%S"`.gz
pg_dump o13 | gzip > /home/zon/db/o13_$bakDates.gz
#pg_dump o13_fufeng | gzip > /home/zon/db/o13_fufeng_$bakDates.gz
mysqldump -u 'xwiki' -p'd6g981a0' xwiki --insert-ignore | gzip > /home/zon/db/xwiki_db_$bakDates.gz
mysqldump -u 'openkm' -p'd6g981a0' okmdb | gzip > /home/zon/db/openkm_db_$bakDates.gz
#cp -u /home/zon/db/*.gz /run/user/1000/gvfs/smb-share:server=file-server2.local,share=web/db
#cp -u /home/zon/db/*.pdf /run/user/1000/gvfs/smb-share:server=file-server2.local,share=web
#xwiki
#cp -u -R /home/zon/jetty /run/user/1000/gvfs/smb-share:server=file-server2.local,share=web/
#cp -u -R /home/zon/.local/share/Odoo /run/user/1000/gvfs/smb-share:server=file-server2.local,share=web/
#cp -u -R /home/zon/tomcat-8.5.24/repository /run/user/1000/gvfs/smb-share:server=file-server2.local,share=web/OpenKm_file/
#sshpass -p "$password" scp /home/zon/db/*.gz $username@$Ip:/var/services/web/db/
#sshpass -p "$password" scp /home/zon/db/*.pdf $username@$Ip:/var/services/web/
#sshpass -p "$password" scp /home/zon/jetty $username@$Ip:/var/services/web/
#sshpass -p "$password" scp /home/zon/.local/share/Odoo $username@$Ip:/var/services/web/
#sshpass -p "$password" scp /home/zon/tomcat-8.5.24/repository $username@$Ip:/var/services/web/OpenKm_file/
sshpass -p "$password" sftp $username@$Ip <<!
put /home/zon/db/o13_$bakDates.gz /web/db/
#put /home/zon/db/o13_fufeng_$bakDates.gz /web/db/
put /home/zon/db/xwiki_db_$bakDates.gz /web/db/
put /home/zon/db/openkm_db_$bakDates.gz /web/db/
put -rp /home/zon/db/*.pdf /web/
put -rp /home/zon/.local/share/Odoo /web/
put -rp /home/zon/tomcat-8.5.24/repository /web/OpenKm_file/
bye
!
sudo service cron reload
sudo service cron start
or
/etc/init.d/cron reload
/etc/init.d/cron start
sudo service cron reload
sudo service cron start
or
/etc/init.d/cron reload
/etc/init.d/cron start